如何在Kendo网格的所有页面中获取选中行的selectedKeyNames的selectedItemNames的dataItems

时间:2019-01-22 14:01:58

标签: kendo-ui grid

我有带有本地数据的Kendo网格以及复选框和分页。我正在所有页面上使用selectedKeynames()获取所有选中的项目ID。 如何在所有页面上获取选中的项目的dataItems?

2 个答案:

答案 0 :(得分:1)

如果您使用Kendo进行分页,排序等操作,而不在服务器上处理这些操作,那么除了浏览数据源中的元素列表外,似乎别无他法。像这样:

var g = $("#grid").getKendoGrid();
var d = g.dataSource.data();
var s = g.selectedKeyNames();
var r = [];
for (var i = 0; i < d.length; i++) {
  if (s.indexOf(d[i].Id) >= 0) {
    r.push(d[i]);
  }
}

答案 1 :(得分:0)

这是您的可能解决方案。

请查看以下dojo:https://dojo.telerik.com/ibALanIX

与其他解决方案一样,我正在获取数据,但是在所选项目上使用了forEach循环,因为当您开始拥有大量记录时,for循环可能需要一些时间。

所以我要做的就是遍历选定的项目,然后从选定的列表中获取这些项目。

 var grid = $("#rowSelection").data('kendoGrid');
 var selectedItems = grid.selectedKeyNames();
 var actualItems = [];


 if (selectedItems.length > 0) {
   selectedItems.forEach(function(key) {
     actualItems.push(grid.dataSource.get(key));
   });


 }

这将减少您必须执行的循环数,并且您知道选择的键是什么,那么这将使用kendo DataSource的默认get方法,该方法映射到模型中的ID。数据源架构。