2015-01-26 114 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