在索引方法中,我列出了特定玩家的记录。
e.g。
def index() {
Player player = Player.get( params.playerId)
def records = Record.findAllByPlayer(player, params:params)
[records: records, playerInstance: player, params: params]
}
这样可行,但视图中没有可排序的列。
如何查找需要排序的列,以及如何在findAllByXXX中使用此信息?我已经搜索了谷歌,但没有找到任何不涉及简单" Books.list(params)"图案。
在视图中,我有sortableColumns:
<g:sortableColumn property="createdAt" title="${message(code: 'paymentRecord.created.label', default: 'Created at')} "
params="${params}" style="width: 15%;"/>
我看到URL末尾的参数,例如:
/index/1?sort=credit&order=desc
答案 0 :(得分:2)
您需要Record.findAllByPlayer(player, params)
代替Record.findAllByPlayer(player, params:params)
。
您可以看到示例here in grails documentation。文档中的一个例子是
def results = Book.findAllByTitle("The Shining",
[max: 10, sort: "title", order: "desc", offset: 100])
答案 1 :(得分:2)
list方法中可用的分页和排序参数也可用于动态查找器。
所以你可以这样做,如果你在params中有排序和订单。
Record.findAllByPlayer(player, params)
或
Record.findAllByPlayer(player, [max: xx, offset: xx, sort: "name", order: "desc"])