1

我正在尝试从Kendo UI Grid中删除多行。我首先尝试配置网格以允许选择多行,然后调用Grid.removeRow()每个选定的行,但不知何故,这阻止了任何编辑器模板选择的显示。

配置:

// ...
.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。

4

1 回答 1

2

似乎removeRow()在 IE 中调用会破坏与遍历剩余检查行相关的内容。我能够通过填充要删除的行数组来解决这个问题,然后删除每个项目。

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);
});
于 2013-09-24T21:49:45.357 回答