0

分页在 grails 中对我不起作用。我也无法在 GUI 中看到分页按钮。我在 GUI 中看到整个列表

def lists={
params.max = Math.min(params.max ? params.int('max') : 10, 100) 
def submittedList=[],InstanceList=[]
submittedList=FicheRequest.executeQuery("select fr.id,fr.MOSSNumber from FicheRequest fr where  fr.status=?",['Submitted']) 
    if(submittedList.size()>0){
    def sortedSubmittedList=new MossNumberSorting().getSortedMossNo(submittedList as ArrayList[])
    sortedSubmittedList.each{sortedId->InstanceList.add(FicheRequest.get(sortedId))}
            }
    else
    flash.message="No Submitted Request exists in the queue"

    return [InstanceList:InstanceList, InstanceTotal: InstanceList.count()] 
}

在我正在使用的 gsp 中

<div class="paginateButtons">
            <g:paginate total="${InstanceTotal}" />
        </div>

我还在 URL 中看到了 max 和 offset 参数

http://localhost:9090/apps2/lists?offset=0&max=10

不知道问题出在哪里,请提出一些解决方案

4

2 回答 2

0

您可能忘记将参数传递给行:
submittedList=FicheRequest.executeQuery("select fr.id,fr.MOSSNumber from FicheRequest fr where fr.status=?",['Submitted'])
尝试这样:
submittedList=FicheRequest.executeQuery("select fr.id,fr.MOSSNumber from FicheRequest fr where fr.status=?",['Submitted'],[max:params.max,offset:params.offset])
查看更多详细信息:http:
//grails.org/doc/latest/ref/Domain%20Classes/executeQuery.html

于 2012-05-27T22:58:20.877 回答
0

我找到了对数组列表进行分页的粗略解决方案。我可以传递带有最大值和偏移值的完整列表,并获得要在视图中显示的列表:

http://www.intelligrape.com/blog/2010/09/14/grails-pagination-on-filtered-list/

但这不是一个好的解决方案,因为它需要加载所有数据库值以进行分页。我想到的一种解决方案是以苔藓编号排序格式存储域实例。苔藓数的格式有点复杂;这就是为什么我在从数据库中检索所有实例后使用 Comparator 类对其进行排序的原因。我欢迎关于如何以苔藓编号排序格式或其他格式保存我的实例的更好的想法。

于 2012-05-28T05:02:35.507 回答