Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sorting Grails排序问题_Sorting_Grails - Fatal编程技术网

Sorting Grails排序问题

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

我开发了一个grails应用程序。 在此,我有一个页面,它接受数据,并根据数据。转到列表操作,激发sql,将数据填充到ReconficationInstance对象中,并将其显示在list.gsp中

在我的名单上,我有

<g:sortableColumn property="access"
    title="${message(code: 'reconciliationInstance.access.label', default: 'Access')}" 
    style="width: 10px" defaultOrder="desc"/>
//获取上一页中输入的参数 def odcNum=参数odcNum def odcDate=参数odcDate
def 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])
     }
 }