Grails - sortedColumn:如何对具有列表值的列进行排序?

时间:2014-12-10 16:00:26

标签: sorting grails groovy gsp

我有一个域类,它包含SomeObject字段的ArrayList和一些其他非列表字段。
domain类有一个list.gsp文件,它显示表中DB的所有元素,表中的所有列都定义为sortedColumn。

我需要处理的问题是如何对ArrayList列进行排序。

我在list函数中的前一个代码是:

params.sort = params.sort ? params.sort : 'name'
params.order = params.order == 'desc' ? params.order : 'asc'
params.max = Math.min(params.max ? params.max.toInteger() : 10, 100)
params.offset = params.offset ? params.int('offset') : 0    
ArrayList<MyObject> myObjectList = MyObject.list(params)
[myObjectList: myObjectList, myObjectListTotal: MyObject.count()]

在哪里可以特别注意还使用分页的ArrayList列? 因为我设法处理代码并采用这种方式:

  if (params.sort == "specialCare")
    {
        params.offset = params.offset ? params.int('offset') : 0
        params.max = Math.min(params.max ? params.max.toInteger() : 10, 100)

        ArrayList<MyObject> myObjectList = MyObject.list(params)
        myObjectList.sort{ listToString(it.getProperty(params.sort)) 
      }
        if (params.order == "desc")
            myObjectList.reverse(true)

        [myObjectList: myObjectList, myObjectListTotal: MyObject.count()]<br>
    }

现在的问题是如何处理分页情况并且每页获得10行。 我为所有页面获得了相同的结果。

0 个答案:

没有答案