簡體   English   中英

劍道網格 - 獲取當前編輯行

[英]Kendo grid - get current editing row

即使未選擇,您如何獲取已編輯的當前行? 我有一個可navigatablebatch啟用的劍道網格。 我的目標是使用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;
}

JSFiddle 示例

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM