2016-09-29 12 views
0

我可以插入新行并对其进行编辑,但我无法删除,因为显然只有在选中该行并处于编辑模式时,值传递给代码隐藏。无法从Kendo网格获取行值,除非它们处于编辑模式

插入/修改/删除类的代码隐藏在C#

这是js代码执行删除操作:

  var selectedRow; 
      // deletes the selected row 
      function doDelete() { 
       var grid = $('#Grid').data('tGrid'); 
       if (selectedRow) { 
        grid.deleteRow($(selectedRow)); 
       } 
       return false; 
      } 

这是执行编辑代码:

  function beginInsert() { 
       var grid = $('#Grid').data('tGrid'); 

       // enter insert mode 
       grid.addRow(); 

       // update the selected row 
       selectedRow = $('#Grid .t-grid-new-row'); 

       // show the 'Insert' and 'Cancel' buttons and hide the 'Delete', 'Create' and 'Edit' buttons 
       toggleInsertButtons(true); 
       return false; 
      } 
      function endInsert() { 
       var grid = $('#Grid').data('tGrid'); 
       // perform the insertion - call the _Insert action method 
       grid.insertRow($(selectedRow)); 
       // hide the 'Insert' and 'Cancel' buttons and show the 'Delete', 'Create' and 'Edit' buttons 
       toggleInsertButtons(false); 
       return false; 
      } 

回答

0

要删除一行,你需要告诉网格小部件它应该删除的行,对吧?您的代码使用selectedRow变量,该变量填充在(可能)编辑事件中。这就是为什么你只能在编辑时删除。

要随时删除所选行,只需使用selectremoveRow在一起:

function doDelete() { 
    var grid = $('#Grid').data('kendoGrid'); 
    grid.deleteRow(grid.select()); 
} 

Demo

现在,如果你想删除未选择行,你必须好歹选择它并传递给removeRow方法:

function doDelete() { 
    var grid = $('#Grid').data('kendoGrid'); 
    var row = $(grid.tbody).find("tr:first"); // Selects grid's first row 

    grid.removeRow(row); 
} 

Demo

+0

谢谢,这很有帮助。 – zui

+0

@ ui很高兴帮助! – DontVoteMeDown