如何在grails列表中排序?

时间:2015-12-02 06:13:05

标签: sorting grails

我刚开始使用grails并希望按降序排序列表。我试过这个:

  <g:sortableColumn property="eventStartDate" defaultOrder="asc" title="${message(code: 'event.eventStartDate.label', default: 'Event Start Date')}" />

但是这不会对列表进行排序。控制器如下所示:

def list = {
    params.max = Math.min(params.max ? params.int('max') : 10, 100)
    [eventInstanceList: Event.list(params), eventInstanceTotal: Event.count()]
}

如何按降序eventStartDate进行排序?

1 个答案:

答案 0 :(得分:0)

它可能没有用的原因是:

  1. Event.list(params)检索所有内容。
  2. 您按升序排序(asc),但您说要按降序排序(desc)。
  3. <强>解决方案: 将控制器操作的第二行更改为:

    [eventInstanceList: Event.list(order: "desc"), eventInstanceTotal: Event.count()]
    

    更多信息: http://grails.github.io/grails-doc/2.2.1/ref/Domain%20Classes/list.html

    Event.list(params)返回域对象中的所有内容。它没有做任何过滤。请改用findAllBy*findBy*createCriteria

    示例:

    Event.findAllByNameAndDate(params.get("name"), params.get("date"), [max: 10, order: "desc"])
    

    更多信息:
    grails domain class .list() method with params