[英]Kendo grid - get current editing row
即使未選擇,您如何獲取已編輯的當前行? 我有一個可navigatable
的batch
啟用的劍道網格。 我的目標是使用dataItem.set()
方法手動編輯列中的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 最接近()函數:
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");
}
});
您還可以為網格編寫擴展,例如像這樣
// extend the grid
kendo.ui.Grid.fn.getCurrentDataItem = function() {
var that = this, current = that.current(), dataItem = null;
if (current) {
dataItem = that.dataItem(current.closest('tr'));
}
return dataItem;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.