我正在尝试从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。
答案 0 :(得分: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);
});