問題は、独自の内部仮想ページング ロジックがあるOnDemandGrid
ため、ページネーションを使用できないことだと思います。dgrid 拡張機能 wikiOnDemandGrid
から:
OnDemandList および OnDemandGrid モジュールとは対照的に、Pagination 拡張機能は従来の個別のページング コントロールを実装します。特定の時間に特定の数の結果を表示し、ページを切り替えるためのコントロールを含むフッター領域を提供します。
注: ページネーション拡張機能は、OnDemand コンストラクターの 1 つではなく、List または Grid に混在させる必要があります。これらには独自の仮想スクロール ロジックが含まれているためです。内部的には、ページネーションは、Dojo/ストアとの共通の統合のために OnDemand プロトタイプによって継承されたものと同じ _StoreMixin モジュールから継承されます。
代わりにやりたいことはPagination
、プレーンにミックスインすることですGrid
。Pagination Mixin には、行数などの関心のあるプロパティが含まれています。Paginator 拡張機能は、表示する行のセットを取得してレンダリングするために、提供されたストアとの通信を処理します。define
そのようなクラスの Aは次のようになります。
define(['dojo/_base/declare','dgrid/Grid', 'dgrid/extensions/Pagination'],function(declare,Grid,Pagination){
return declare('mine.PaginatedGrid',[Grid,Pagination],{
//various default you can set
pagingLinks: false,
pagingTextBox: true,
firstLastArrows: true,
minRowsPerPage: 5,
rowsPerPage: 5,
pageSizeOptions: [5, 10, 15, 25, 50, 100]
});
});