0

私は編集ボタンを持っており、剣道グリッドでは、連続して何かを変更すると発生する onSave イベントがあります。行を更新するときに dataItem 値にアクセスしたいのですが、何らかの理由で常に null です。何が間違っていますか? ドロップダウンメニューの値に問題なくアクセスできますが、非表示の値も必要です。

JS

function onSave(e) {
        if (e.model.StatusIdD) {     
            e.model.StatusIdD = 0;
            var currentlySelectedValue = $(e.container).find('#StatusIdD').data("kendoDropDownList").value();
            var dataItem = this.dataItem($(e.target).closest("tr"));
            var bojaTeksta = dataItem.BojaTeksta;
            console.log(bojaTeksta);
            e.model.set('StatusIdD', currentlySelectedValue);
            e.model.set('Status', $(e.container).find('#StatusIdD').data("kendoDropDownList").text());
            //e.model.set('BojaPozadine', currentlySelectedValue);
            //e.model.set('BojaTeksta', currentlySelectedValue);
        }     
    }

グリッド - 簡略化

...
columns.Bound(p => p.BojaTeksta).Hidden(true);
columns.Bound(p => p.BojaPozadine).Hidden(true);
...
.Events(e => e.Remove("onRemove").Save("onSave"))

答え

dataItem ではなく selectedItem を使用してデータを取得できました (コマンド ボタンをクリックすると、自動的に行が選択されます)。

var grid = $("#Grid" + '@guid').data("kendoGrid"); 
var selectedItem = grid.dataItem(grid.select()); 
var bojaTeksta = selectedItem.BojaTeksta; 
var bojaPozadine = selectedItem.BojaPozadine; 
console.log(bojaTeksta); 
console.log(bojaPozadine);
4

1 に答える 1

1

隠された値を取得するのに問題はありません。

まず、BojaTeksta が設定されていることを確認します。生成されたhtmlを調べることによって。

次のようになります。

<td role="gridcell" style="display:none">123</td>

dataItem から他の値を取得しているかどうかを確認してください。隠されていない値。

そうでない場合は、イベントでターゲットの代わりに currentTarget を使用してみてください。

var dataItem = this.dataItem($(e.currentTarget).closest("tr"));
于 2013-08-02T11:44:08.233 に答える