web-dev-qa-db-ja.com

剣道グリッド-現在の編集行を取得

選択されていない場合でも、編集されている現在の行を取得するにはどうすればよいですか? batchであるnavigatable対応の剣道グリッドがあります。私の目標は、dataItem.set()メソッドを使用して列のデータを手動で編集することです。ただし、行を追加しても、自動的には選択されません。したがって、vm.testGrid.dataItem(vm.testGrid.select())は使用できません。

vm.testGrid.dataSource.get(e.model.get("Id"))は新しく追加された行を取得しますが、保存する前に複数の行が追加された場合、常に最初に追加された行を取得します( "Id"は自動インクリメントに設定され、データベースサーバーによって自動的に生成されるため、すべて新しく作成された行は、保存する前に最初は0になります)。

vm.onEdit = function (e) {
    $('input.k-input.k-textbox').blur(function (f) {
        //var data = vm.testGrid.dataItem(vm.testGrid.select());
        var data = vm.testGrid.dataSource.get(e.model.get("Id")); // will always get the firstly added row
        data.set("LookupCol", "1000");
    }
});

現在編集されている行を取得するためのより良い解決策はありますか?または、現在の行を編集するためのより良い方法はありますか?

7
SharkTiles

以下に、現在のセルに関連付けられているデータ項目を示します。

var dataItem = grid.dataItem(grid.current().closest("tr"));

// You can then set properties as you want.
dataItem.set("field1", "foo");
dataItem.set("field2", "bar");
5
moomoo

JQueryのclosest()関数を使用しました:

vm.onEdit = function (e) {
    $('input.k-input.k-textbox').blur(function (f) {
        var data = vm.testGrid.dataItem($(e.container).closest("tr"));
        data.set("LookupCol", "1000");
    }
});
2
SharkTiles