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

配列リストのページネーションの大まかな解決策を見つけました。最大値とオフセット値を含む完全なリストを渡し、ビューに表示するリストを取得できます。

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

ただし、ページネーションのためにすべてのデータベース値をロードする必要があるため、これは良い解決策ではありません。私の頭に浮かぶ 1 つの解決策は、ドメイン インスタンスを moss 番号でソートされた形式で保存することです。苔数の形式は少し複雑です。そのため、DB からすべてのインスタンスを取得した後、 Comparator クラスを使用して並べ替えています。インスタンスを moss 番号でソートされた形式などで保存する方法について、より良いアイデアを歓迎します。

于 2012-05-28T05:02:35.507 に答える
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 に答える