2013-09-24 19 views
1

我試圖從Kendo UI Grid中刪除多行。我首先嚐試配置網格以允許選擇多行,然後在每個選定行上調用Grid.removeRow(),但不知何故,這阻止了任何編輯器模板選擇顯示。removeRow()不適用於IE中的多行

配置:

// ... 
.Selectable(selectable => 
    { 
     selectable.Enabled(true); 
     selectable.Mode(GridSelectionMode.Multiple); 
    }) 
// ... 

刪除按鈕邏輯:

// ... 
var grid = $("#TimesheetGrid").data("kendoGrid"); 
grid.select().each(function (index, item) 
{ 
    grid.removeRow(item); 
}); 
// ... 

由於選擇元素在我的編輯模板是不工作的,我除去配置行以使多個行選擇和添加一個複選框列。

// ... 
.Selectable(selectable => 
    { 
     selectable.Enabled(true); 
    }) 
// ... 

// ... 
$("#MyGrid tbody tr td.select input[type=checkbox]").each(function (index, item) 
{ 
    if ($(item).is(":checked")) 
    { 
     var $row = $(item).parents("tr"); 
     grid.removeRow($row); 
    } 
}); 
// ... 

這也沒有工作。在IE中,它會刪除第一個選定的行,然後忽略其餘的行。我錯過了什麼?我正在使用Kenudo UI版本2013.2.716。

回答

2

在IE中調用removeRow()似乎破壞了與遍歷其餘選中行相關的內容。我能夠通過填充要刪除的行數組,然後刪除每個項目來解決此問題。

var deleting = new Array(); 

$("#MyGrid tbody tr td.select input[type=checkbox]").each(function (index, item) 
{ 
    if ($(item).is(":checked")) 
    { 
     var $row = $(item).parents("tr"); 
     deleting.push($row); 
    } 
}); 

$.each(deleting, function(index, item) 
{ 
    grid.removeRow(item); 
}); 
相關問題