選択されていない場合でも、編集されている現在の行を取得するにはどうすればよいですか? 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");
}
});
現在編集されている行を取得するためのより良い解決策はありますか?または、現在の行を編集するためのより良い方法はありますか?
以下に、現在のセルに関連付けられているデータ項目を示します。
var dataItem = grid.dataItem(grid.current().closest("tr"));
// You can then set properties as you want.
dataItem.set("field1", "foo");
dataItem.set("field2", "bar");
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");
}
});