2

Kendo UI グリッドのコンテンツを 60 秒ごとに最新のデータで更新したいと考えています。

編集:初期構成で dataSource がどのように割り当てられているかを次に示します。

parsedData = $.parseJSON(data);

var dataSource = new kendo.data.DataSource({
    data: parsedData
});

$("#grid").kendoGrid({
    dataSource: dataSource, 
    . . .

グリッドの dataSource を一気に再割り当てできますか? それとも、dataSource.data 内の項目を個別に削除するか、配列をクリアしてから、新しい項目を挿入するか、配列全体を置き換える方がよいでしょうか? Kendo dataSource の観察パターンの実装は、あるアプローチを別のアプローチよりも示していますか?

私はまだこれに着手していませんが、グリッドに関する私の経験では、Visual Basic の初期の頃までさかのぼり、グリッドのデータソースを変更すると常に望ましくない副作用があり、これがよりスムーズになると期待する理由はありません。セーリング。私が間違っていることを願っています。

別の編集# (2013 年 4 月 26 日): 以前と同じ構造を持つ新しい行セットでグリッドの基になるデータを更新するアプローチがある場合、グリッドのグループ化の展開/折りたたみ状態を保持するアプローチ、それは私たちの目的に最適であること。

4

4 に答える 4

7

Kendo 2012.3.1315.340 バージョンを使用しており、次のように動作します。

$("#YourGridNameHere").data("kendoGrid").dataSource.read();

そのように、データソースにもう一度データを読み取るように指示しています。通常は、requestEnd イベント ハンドラーで行います。

これが誰かに役立つことを願っています。

于 2013-03-14T13:09:11.830 に答える
2

グリッドのデータ ソースを更新するには、dataメソッドを使用します。

$("#grid").data("kendoGrid").dataSource.data(parsedData);
于 2012-12-15T14:30:51.813 に答える
1

DataSourceサンプルコードからすると、リモートデータをフェッチするのではなく、ローカルデータを使用しているように見えますか?

リモートデータをフェッチしている場合は、次のように呼び出すことができます。

$("#grid").data("kendoGrid").dataSource.sync();

また、グリッドが読み取り専用でない場合は、サーバーから再フェッチし、未処理の更新または削除を実行します。

ローカルデータを.data更新するには、DaaSourceでプロパティを設定するだけです。

$("#grid").data("kendoGrid").dataSource.data(parsedData);

試してみるための実用的な例はありませんが、関数が呼び出された後にグリッド行が更新されない場合は、グリッドでrefreshを呼び出す必要がある場合もあります。dataSource.data()

function updateGridData (parsedData) {
    var grid = $("#grid").data("kendoGrid");
    grid.dataSource.data(parsedData);
    grid.refresh();
}
于 2012-12-15T15:59:05.660 に答える
0

グリッドを更新するには、dataSource で変更イベントを処理する必要があります。

change: function() {
    var grid = $(YouGridSelector).data("kendoGrid");
    grid.refresh();
}

これにより、dataSource のデータを変更するとグリッドが更新されます。

于 2012-12-15T13:19:00.737 に答える