使用分页从 Kendo 网格中删除行

Delete rows from Kendo Grid with Pagination

我有一个包含一些条目的 kendo 网格(启用了分页)。比如说,我有 5 页,我从每页中选择(单击复选框)一行,然后单击顶级操作删除。我不知道如何从网格和数据源中删除条目?

我试过下面的代码,它删除了在网格(屏幕上)可见的页面中的条目

        var grid = $("#grid").data("kendoGrid");
        var userSelectionInfo = usersService.getUserSelectionInfo();
        for(var userName in userSelectionInfo) {
            if(userSelectionInfo[userName]) {
                var selector = '#' + userName+ '_actions';
                grid.removeRow($(selector).closest('tr'));
            }
        }

我尝试了另一种方法:

我创建了一个对象数组,将在从原始对象数组删除操作后保留,然后添加到网格数据源中。

    var newData = [];
    var userSelectionInfo = usersService.getUserSelectionInfo();
    for(var i = 0; i < users.length; i++) {
        if(users[i].userName&& !userSelectionInfo[users[i].userName]) {
            newData.push(users[i]);
        }
    }
    loadUsersIntoGrid(newData);

是否有更好的方法或 kendo API 我想念的? 提前致谢。

您可以从数据源中删除,而不是 grid.First 将每个选定项目的 ID 推送到一个数组,例如 DeleteList。然后您可以通过单击顶部的 DELETE 从数据源中删除。

for(i=0; i<= DeleteList.length; i++)
{
  grid.dataSource.remove(grid.dataSource.get(DeleteList[i]));
}