データグリッドで全ページのデータをどのように取得するか

すべてのページのデータをダウンロードするには、以下の手順を使用できます。

  1. データグリッドの getTotalCount() メソッドでデータの総行数(総レコード数)を取得、getPageSize() メソッドで1 ページあたりに表示する行数を取得します。
  2. 合計ページ数 = 合計レコード数 ÷ 1ページあたりの表示行数(合計レコード数が1ページあたりの表示行数で割り切れない場合は、合計ページ数に1を加算する)
  3. 総ページ数まで1ページ目からループして全て取得します。
  4. ループ処理では、datagrid の loadData() メソッドを使って各ページ分のデータを読み込む。loadData() メソッドは2つの引数(ページ番号と1ページあたりの行数)を受け付ける。ページ番号は1から始まる。
  5. データロード完了後、datagridのgetRows()メソッドによって現在のページのデータを取得可能です。このデータをコレクションなどに保持して、後続の処理に使用できます。
  6. ループが終了すると、すべてのページのデータがセットに格納されます。

次のサンプルコードに、すべてのページのデータを取得する方法が示されています。

var totalRows = datagrid.getTotalCount();
var pageSize = datagrid.getPageSize();
var totalPages = Math.ceil(totalRows / pageSize);
var allData = [];

for (var i = 1; i <= totalPages; i++) {
  datagrid.loadData(i, pageSize);
  var currentPageData = datagrid.getRows();
  allData = allData.concat(currentPageData);
}

// allData 中就存储了所有页的数据

実際の状況に応じて、データ量やシステムパフォーマンスに応じて最適化が必要になる場合がありますので、上記のサンプルコードはあくまでもデモ目的のコードであり、ページング読み込みのパフォーマンスと効率の問題は考慮していません。

bannerAds