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

如何从Kendo Grid所有分页中获取选中行数据?

从Kendo Grid全分页中获取选中数据的无模板实现方案

问题背景

需要实现从Kendo Grid的所有分页中获取选中数据的ID——比如在第1页选1条、第2页选1条,点击「获取选中行」按钮时能拿到这些选中项的ID。目前现有代码只能获取当前页的选中数据,想知道有没有无需创建复选框模板/额外ID字段的实现方式。

现有单页选中数据获取代码:

var grid = $("#grid").data("kendoGrid");
var selectedRows = grid.select();
selectedRows.each(function(index, row) {
  var selectedItem = grid.dataItem(row);
  alert(selectedItem.ProductID);
});

无模板实现方案

Kendo Grid原生提供了selectedKeyNames()方法,可直接获取所有分页中选中行的主键值,无需自定义复选框模板,前提是已配置好Grid的选中规则与数据主键。

实现代码

// 获取Grid实例
var grid = $("#grid").data("kendoGrid");
// 获取所有分页中选中行的主键ID数组
var allSelectedIds = grid.selectedKeyNames();
// 输出或使用这些ID
console.log("所有选中项ID:", allSelectedIds);

关键配置要求

要让该方法正常生效,必须确保Grid的两个核心配置:

  • 初始化Grid时设置selectable: "multiple, row",开启多行选中功能
  • 在Grid的dataSource.schema.model中指定主键字段,示例:
    dataSource: {
      schema: {
        model: {
          id: "ProductID" // 对应数据中的主键字段名
        }
      }
      // 其他dataSource配置(如数据源、分页设置等)
    }
    

原理说明

selectedKeyNames()方法会自动跟踪所有分页内用户选中的行,通过主键维护跨分页的选中状态,切换分页时不会丢失之前的选中记录,调用时直接返回所有选中行的主键数组,完全不需要额外的模板或ID处理逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 19:05:28