4
grid.dataItem(selectedRow) 

これは kendo.data.ObservableObject である選択された行を返します。

このオブジェクトには、そのグリッドの選択された行のすべての列があります。すべての列を反復処理して更新する方法はありますか。または、次のようにする必要がありますか:

dataitem.set("Id", 1);
dataitem.set("name", Eric);
dataitem.set("age", 12);
4

1 に答える 1

7

私が理解している限り、あなたがしようとしているのは、1 つの JavaScript オブジェクトを Grid アイテムにコピーすることですよね?

に新しい値があると仮定しましょうval:

var val = {
    Id : 1,
    name: "Eric",
    age: 12
};

そして、選択した行にコピーします。

それにはいくつかの方法があります。

  1. あなたがしたこと。
  2. のさまざまなキーを繰り返しval、値をコピーします。
  3. jQuery 拡張を使用します。

オプション 2。

for (var key in val) {
    if (val.hasOwnProperty(key)) {
        dataitem.set(key, val[key]);
    }
}

オプション 3。

$.extend(item, val);
item.set("uid", kendo.guid());

最初の命令は、へのディープ コピーを実行valitemます。2 番目の命令はdirty、UID を変更するだけでアイテムを作成します。

注:を使用してすべてのフィールドを更新する必要はありませんset。1 つ変更するだけで十分で、すべてが更新されます。

于 2013-08-14T22:59:14.050 に答える