SMART datagrid v.1 > Examples

Back  Forward

Paging - Lazy Data Load  Example  準備中...

Dataludi Gridのページングについてのページング概要基本サンプルを先に確認する。 

各ページに表示するすべてのデータがデータセットに先にロードされる必要はない。 予想される全体ページの数を指定して、各ページへの移動の前や移動の後のイベントで 必要なデータをロードして表示することができる。 

グリッドデータセットは基本的に仮想の行を支援している。 つまり、setRowCountを呼び出して行の数を指定する時基本の値を指定しなければ、 行の数だけの場を準備しておいて、実際にデータ行を生成はしない。 以後updateRowなどでデータ行の値を実際にセーブすることができる。 特定の行がデータがロードされた状態かどうかはhasDataメソッドでわかる。 

このrowCountの特性を利用すればページ変更の時点に必要なデータをロードする方式を容易く具現することができる。 こんな方式を具現するためには、まず全体ページの数を指定しなければならない。 

Code -1
    // データ行の数指定
    dataset.setRowCount(53);
    
    // ページのサイズ10行、全体6ページ
    grid.setPaging(true, 10, 6);

そして、ページの位置が変更になる時、表示するデータがロードされてない状態ならデータを取得してくる。 

Code -2
    grid.onPageIndexChanged = function (grid, oldPage, newPage) {
        var start = newPage * grid.pageSize();
        if (!dataset.hasData(start)) {
            loadData(start);
        }
    };
Grid - 1

上のサンプルでのようにrowCountを先に指定する前にページの変更の時、必要な分だけ増やしながら進行してもいい。 

ソースを見る 

See Also
ページング概要
GridView.setPaging
GridView.pageIndex
GridView.pageCount
GridView.onPaged
GridView.onPageCountChanged
GridView.onPageIndexChanging
GridView.onPageIndexChanged
Examples
基本ページング
ページ行の位置指定
ページに特定の行達を表示