1

dgrid で dgrid のページネーション拡張機能を使用する例を教えてください。これは、参照リンクまたは入力した簡単な例です。コードで定義し、OnDemandGrid で使用して、カスタム グリッドの宣言 mixin に追加しました。ページ ナビゲーションの矢印が表示され、ページ サイズ設定メニューが表示されますが、rowsPerPage: 3 を指定しても何も起こりません。まだ 7 つのサンプル レコードが表示されます。

dgrid の JsonRest およびメモリ ストアをラップする変更されたキャッシュ (データ オブジェクト ストア) を使用しています。

4

2 に答える 2

3

問題は、独自の内部仮想ページング ロジックがある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]
    });
});
于 2012-10-18T12:14:48.367 に答える