データグリッドで全ページのデータをどのように取得するか
すべてのページのデータをダウンロードするには、以下の手順を使用できます。
- データグリッドの getTotalCount() メソッドでデータの総行数(総レコード数)を取得、getPageSize() メソッドで1 ページあたりに表示する行数を取得します。
- 合計ページ数 = 合計レコード数 ÷ 1ページあたりの表示行数(合計レコード数が1ページあたりの表示行数で割り切れない場合は、合計ページ数に1を加算する)
- 総ページ数まで1ページ目からループして全て取得します。
- ループ処理では、datagrid の loadData() メソッドを使って各ページ分のデータを読み込む。loadData() メソッドは2つの引数(ページ番号と1ページあたりの行数)を受け付ける。ページ番号は1から始まる。
- データロード完了後、datagridのgetRows()メソッドによって現在のページのデータを取得可能です。このデータをコレクションなどに保持して、後続の処理に使用できます。
- ループが終了すると、すべてのページのデータがセットに格納されます。
次のサンプルコードに、すべてのページのデータを取得する方法が示されています。
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 中就存储了所有页的数据
実際の状況に応じて、データ量やシステムパフォーマンスに応じて最適化が必要になる場合がありますので、上記のサンプルコードはあくまでもデモ目的のコードであり、ページング読み込みのパフォーマンスと効率の問題は考慮していません。