1

私の要件は、グリッドの選択されたすべての行をループし、指定された値でデータソースのフィールドを設定することです。私は次のコードを持っており、剣道UIグリッドの選択された行を反復処理します。

$('#grid').data("kendoGrid").select().each(function () {
                if($('#grid').data().kendoGrid.dataSource.data()[$(this).index()] != null ){

                    var myItem = $('#grid').data().kendoGrid.dataSource.data()[$(this).index()];
                    myItem.set(myFiled, myValue);
                    leg.push(myItem);

                }
            });

問題は、コードがmyItem.set(myFiled、myValue);の行に到達した後です。インデックスは値-1を取得し、次の反復でもこの値を保持します。

.setメソッドを削除すると、同じ動作がなく、インデックスが正しい値を保持していることがわかります。なぜこれが起こっているのですか?

さらに、行の違いは何ですか:

i)$('#grid')。data( "kendoGrid")。dataItem($(this))。set(myField、myValue);

ii)$('#grid')。data()。kendoGrid.dataSource.data()[$(this).index()]。set(myField、myValue);

最初はグリッド上の値に関係していることを私は知っています。残念ながら、(i)に示すように値を設定することはできませんでした。行(i)に示されているコードは、集合関数ではまったく機能していないようです。

ここから例を取り上げました。ケース(i)と(ii)について、Javascriptを使用してグリッド内の単一のKendoグリッド行Kendo-UIグリッドセット値を更新します。

4

1 に答える 1

1

解決策/回避策を見つけました。剣道グリッドインデックスがなぜこのような振る舞いをするのかはまだわかりませんが。

反復内でmyItem.set(myField、myValue);を使用する代わりに コードをmyItem[myField]=myValue;に変更しました。

このメソッドでは、値が変更され、変更イベントは(必要に応じて)トリガーされず、インデックスは必要に応じてその値を保持していました。

于 2013-01-29T09:10:33.477 に答える