2015-01-26 75 views
6

如何获得当前已编辑的行,即使未选中该行?我有一个batch启用Kendo网格是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"); 
    } 
}); 

是否有更好的解决方案来获取当前已编辑的行?或者有更好的方法来编辑当前行吗?

回答

2

我用的JQuery最接近()函数:

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"); 
    } 
}); 
3

下面将为你与当前小区相关的数据项:

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

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

太好了,我有问题,找到当前编辑的行而在传输过程中过滤数据读取(根本无法从参数获取UI参考)这个修复了我的问题 – kite 2015-10-03 16:42:37

+1

测试后,发现这个方法的问题:当第一个网格出现时,然后按add - >修改输入模板,grid.current()未定义。 – kite 2015-10-03 20:23:59