3

無限スクロール操作の一部としてデータをフェッチした後、Telerik グリッドがデータを内部に保存する方法について質問があります。リモート仮想化モードを使用しており、Ajax 呼び出しを介して新しいレコードを取得しています。

現在グリッドにバインドされているデータ セットには、次の方法でアクセスできます。

$("#Grid").data().kendoGrid.dataSource.view()

予想どおり、グリッドは新しいページを要求するために Ajax 要求を行いますが、以前のページのデータをオブジェクトのどこかに保存しているようです。cient サイド API を介してそのオブジェクトにアクセスする方法はありますか? つまり、現在のページだけでなく、グリッドによって要求されたすべてのページのすべてのデータを表示できますか?

また、スクロール中に (同じページ番号に対して) グリッドが同じ Ajax リクエストを 2 回行うことがよくあることにも気付きました。重複したリクエストは前のものと同じデータを返すように見えるので、これを防ぐ方法はありますか?

4

1 に答える 1

1

すべてのデータは、内部の_ranges配列内の「範囲」と呼ばれるデータのチャンクに格納されます。

次のように、ロードされたすべてのデータを循環できます。

var chunks = $('#gridName').data().kendoGrid.dataSource._ranges
for(var i=0;i<chunks.length;i++){
    for(var j=0;j<chunks[i].data.length;j++){
        console.log(chunks[i].data[j])
    }
}

複数の同じリクエストについて - これは対処されていると思います。最新の内部ビルドでまだ修正されていない場合は、最も近いリリースで修正する必要があります。

于 2013-01-16T22:28:01.010 に答える