2012-03-06 4 views
1

Grails 2.0でExtJS 3.3.1を使用して画面上のページ付けを行いますが、期待通りに機能しません。 私はここに掲載先端に続く:Grails extJS grid paging
JSページGrails ExtJSページング

paramNames: {start:'offset',limit:'max',sort:'sort',dir:'order'}, 
baseParams: {offset:0,max:10}, 

にpagingToolbar:

this.gridBBar = new Ext.PagingToolbar({ 
      pageSize : 10, 
      store : this.gridStore, 
      displayInfo : true, 
      displayMsg : 'Hiển thị {0} - {1} mục tìm được của {2} kết quả', 
      emptyMsg : 'Không tìm thấy dữ liệu', 
     }); 

コントローラー:ので

def result = Floor.createCriteria().list(
    max:params.int('max')?:100, 
    offset:params.int('offset')?:0 
) 
render ([count:result.totalCount,data:result] as JSON) 

が、ページングボタン(次)が無効になっていたがストアにはわずか10アイテムしか含まれていません。
私は10にオフセットを変更:

paramNames: {start:'offset',limit:'max',sort:'sort',dir:'order'}, 
baseParams: {offset:10,max:10}, 

ページネーションは1奇妙なことを除いて、うまく動作です:グリッドは、常に第1回クリック、20 - 30日のレコードの次の10個の結果(第10回-20のレコードを表示します2回目)、現在の最初の10回の結果ではありません。私は、ExtJsとGrailsから組み合わされたページネーションの正しい使い方が何であるか分かりません。この問題が発生した場合は、私に情報を教えてください。
ありがとうございます。

+0

jsonの外観はどうですか? http://shitmores.blogspot.com/2007/04/grails-ext-grid-mini-tutorial.html – chrislovecnm

+0

返されるJSONは{count}:10、 "items":[ {"id":1、 "name": "AA"}、{"id":2、 "name": "B"}}}リターンリストにgetTotalCount()メソッドまたはtotalCountプロパティがないため、ステートメントrender([count:result.totalCount、data:result] JSON)が正しくないことがわかります –

答えて

0

ああ私は幸運です。私はそれを持っている!これらの2件の記事に基づいて

1. http://grails.1312388.n4.nabble.com/Find-Count-for-pagination-And-Objects-for-Criteria-td1368528.html


私はこれについての説明を発見しました。 JSONで返される "count"プロパティはresult.size()から得られるので、グリッドのストアのPagingToolbarのpageSizeと常に等しいので、ストアはそれを理解します。ナビゲーションボタンを無効にします。
ここでのキーは、(ページ区切り制約を付けずに)クエリの実際の合計結果を返すことです。通常は、createCriteria()。list {}はArraysListを返します。しかし、以下のように一覧表示するには、ページングのparamsを渡すことによって:(リンク1参照))(

DomainClass.createCriteria().list(max : x, offset : y) { 
// not pass max : x, offset : y to here, inside the body 
} 

Grailsは(リンク2参照)、暗黙的PagedResultListとして結果を返します、そしてそれは私たちにgetTotalCountを提供しています。 Grailsには、この魔法の問題についての公式の文書はありません。 私の問題は解決しました。

関連する問題