Sorting Grails排序问题
我开发了一个grails应用程序。 在此,我有一个页面,它接受数据,并根据数据。转到列表操作,激发sql,将数据填充到ReconficationInstance对象中,并将其显示在list.gsp中 在我的名单上,我有Sorting Grails排序问题,sorting,grails,Sorting,Grails,我开发了一个grails应用程序。 在此,我有一个页面,它接受数据,并根据数据。转到列表操作,激发sql,将数据填充到ReconficationInstance对象中,并将其显示在list.gsp中 在我的名单上,我有 <g:sortableColumn property="access" title="${message(code: 'reconciliationInstance.access.label', default: 'Access')}" style="wi
<g:sortableColumn property="access"
title="${message(code: 'reconciliationInstance.access.label', default: 'Access')}"
style="width: 10px" defaultOrder="desc"/>
//获取上一页中输入的参数
def odcNum=参数odcNum
def odcDate=参数odcDatedef date=null
def reconciliationInstance = new Reconciliation()
reconciliationInstance.properties=params
//Validation if all parameters have been entered by the user
if (reconciliationInstance.validate()) {
def results
SimpleDateFormat sdfSource = new SimpleDateFormat("dd-MMM-yyyy")
if(odcDate instanceof Date) {
date = sdfSource.format(odcDate);
}else{
date = odcDate
}
//Query to be fired. I have altered this query a bit. My actual query returns around 15 parameters
String odcData="select odc_access from odc_manager where odc_date=to_char('" + date + "') and odc_num like trim('" + odcNum + "')"
def reconciliationInstanceList = new ArrayList<Reconciliation>()
Sql sql = new Sql(dataSource)
results = sql.eachRow (odcData)
{
def reconciliation = new Reconciliation()
reconciliation.setAccess it.access
reconciliationInstanceList.add reconciliation
session["reconciliationInstanceList"]=reconciliationInstanceList
}
[reconciliationInstanceList: reconciliationInstanceList]
}
else {
render(view: "search", model: [reconciliationInstance: reconciliationInstance])
}
}
def对账立场=新对账()
对账状态。属性=参数
//如果用户已输入所有参数,则进行验证
如果(对账状态.验证()){
def结果
SimpleDataFormat sdfSource=新的SimpleDataFormat(“dd-MMM-yyyy”)
if(odcDate instanceof Date){
日期=sdfSource.format(odcDate);
}否则{
日期=odcDate
}
//要触发的查询。我对这个查询做了一些修改。我的实际查询返回大约15个参数
String odcData=“从odc_管理器中选择odc_访问,其中odc_日期=to_字符(““+date+”)和odc_num-like trim(““+odcNum+”)”
def对账Stancelist=新的ArrayList()
Sql=新Sql(数据源)
结果=sql.eachRow(odcData)
{
def对账=新对账()
对账。设置访问它。访问
对账Stancelist.add对账
会话[“对账标准列表”]=对账标准列表
}
[对账Stancelist:对账Stancelist]
}
否则{
渲染(视图:“搜索”,模型:[对账立场:对账立场])
}
}
顺便说一句,我是grails的新手。因此,您可以在我的代码中找到一些java。
我的代码中缺少一些东西?因此,排序不起作用。输入?它应该将您带回列表操作,但是传递给该操作的参数将让它知道如何对结果模型进行排序 行为是正确的,我假设列表操作中的代码没有正确编码。。。如果需要额外的指导,您可能需要包含该代码 参见示例列表操作
找到了解决此问题的方法。将排序顺序(
params.order
)传递给sql查询,并让查询进行排序。然后在gsp上显示结果
如果还有其他办法,一定要告诉我。谢谢Aaron调查此事。我已经编辑了我的实际问题,以获得列表操作代码。该应用程序具有create.gsp。用户输入、odcNum和odcDate。提交表单时,将调用list操作。在这里,参数被检索、查询运行,数据被填充到对账斯坦列表中。这会返回到list.gsp,我们会将数据显示为表格。该表大约有15行,当用户单击标题时,它应该排序并显示数据。我的代码缺少一些东西。这看起来像是一个grails应用程序,但为什么不使用域对象呢?SQL是什么?我的项目需要SQL…所以必须使用SQL查询。在这种情况下,我如何将我的排序代码放在列表操作周围,因为我要对其进行排序的是协调StanceList。
def list ={
def reconciliationInstance = new Reconciliation()
reconciliationInstance.properties=params
//Validation if all parameters have been entered by the user
if (reconciliationInstance.validate()) {
def results
SimpleDateFormat sdfSource = new SimpleDateFormat("dd-MMM-yyyy")
if(odcDate instanceof Date) {
date = sdfSource.format(odcDate);
}else{
date = odcDate
}
//Query to be fired. I have altered this query a bit. My actual query returns around 15 parameters
String odcData="select odc_access from odc_manager where odc_date=to_char('" + date + "') and odc_num like trim('" + odcNum + "')"
def reconciliationInstanceList = new ArrayList<Reconciliation>()
Sql sql = new Sql(dataSource)
results = sql.eachRow (odcData)
{
def reconciliation = new Reconciliation()
reconciliation.setAccess it.access
reconciliationInstanceList.add reconciliation
session["reconciliationInstanceList"]=reconciliationInstanceList
}
[reconciliationInstanceList: reconciliationInstanceList]
}
else {
render(view: "search", model: [reconciliationInstance: reconciliationInstance])
}
}