You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kendo Grid 2022版本:如何获取网格已删除记录?原getDestroyed()已失效

Kendo UI 2022 获取网格已删除记录的替代方案

在Kendo UI 2022版本中,getDestroyed()方法确实已被移除,你可以通过以下几种方式获取网格中标记为删除的记录:

  • 直接筛选数据源数据集合
    已删除的记录会被保留在数据源中,并自动添加_destroy: true的标记,你可以直接筛选这个集合:
// 获取所有未提交的已删除记录
const deletedItems = grid.dataSource.data().filter(item => item._destroy);

注意:这个方法仅适用于尚未调用sync()提交删除请求的场景,一旦sync()执行完成,这些标记为删除的条目会被从数据源中移除。

  • 通过change事件实时跟踪删除操作
    如果需要持续记录所有删除的条目,可以监听数据源的change事件,在操作类型为remove时收集记录:
let deletedRecords = [];

// 绑定数据源change事件
grid.dataSource.bind("change", function(e) {
    if (e.action === "remove") {
        // 将删除的条目加入集合
        deletedRecords.push(...e.items);
    }
});

这种方式可以保留所有删除过的记录,即使调用了sync(),只要你不主动清空deletedRecords数组,就能一直访问这些数据。

  • 使用items()方法获取全量原始数据
    如果网格开启了分页、排序或过滤,data()方法只会返回当前页的数据集,此时可以用items()获取数据源的全量原始条目,再筛选已删除记录:
const allRawItems = grid.dataSource.items();
const deletedItems = allRawItems.filter(item => item._destroy);

额外注意事项

  • 只有通过网格内置的删除操作或调用数据源destroy()方法删除的条目,才会自动添加_destroy标记;如果是手动移除的条目,需要自行设置该标记才能被识别。
  • 若需要在sync()提交后仍保留已删除记录,务必在提交前将这些数据复制到独立的变量中存储。

内容的提问来源于stack exchange,提问作者A DEv

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 09:33:14