Dataludi Gridのページングについてのページング概要と基本サンプルを先に確認する。
各ページに表示するすべてのデータがデータセットに先にロードされる必要はない。 予想される全体ページの数を指定して、各ページへの移動の前や移動の後のイベントで 必要なデータをロードして表示することができる。
グリッドデータセットは基本的に仮想の行を支援している。 つまり、setRowCountを呼び出して行の数を指定する時基本の値を指定しなければ、 行の数だけの場を準備しておいて、実際にデータ行を生成はしない。 以後updateRowなどでデータ行の値を実際にセーブすることができる。 特定の行がデータがロードされた状態かどうかはhasDataメソッドでわかる。
このrowCountの特性を利用すればページ変更の時点に必要なデータをロードする方式を容易く具現することができる。 こんな方式を具現するためには、まず全体ページの数を指定しなければならない。
// データ行の数指定
dataset.setRowCount(53);
// ページのサイズ10行、全体6ページ
grid.setPaging(true, 10, 6);
そして、ページの位置が変更になる時、表示するデータがロードされてない状態ならデータを取得してくる。
grid.onPageIndexChanged = function (grid, oldPage, newPage) {
var start = newPage * grid.pageSize();
if (!dataset.hasData(start)) {
loadData(start);
}
};
上のサンプルでのようにrowCountを先に指定する前にページの変更の時、必要な分だけ増やしながら進行してもいい。