Kendo ui 如何在剑道网格的所有页面中获取选中行的SelectedKeyName的数据项

Kendo ui 如何在剑道网格的所有页面中获取选中行的SelectedKeyName的数据项,kendo-ui,grid,Kendo Ui,Grid,我有剑道网格与本地数据和复选框和分页。我使用selectedKeynames()在所有页面上获取所有选中的项目Id。 如何在所有页面中获取已检查IEM的数据项?如果您使用Kendo进行分页、排序等操作,而不是在服务器上处理这些操作,那么除了浏览数据源中的元素列表之外,似乎没有其他方法。大概是这样的: var g=$(“#网格”).getKendoGrid(); var d=g.dataSource.data(); var s=g.selectedKeyNames(); var r=[]; 对于(

我有剑道网格与本地数据和复选框和分页。我使用selectedKeynames()在所有页面上获取所有选中的项目Id。
如何在所有页面中获取已检查IEM的数据项?

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

var g=$(“#网格”).getKendoGrid();
var d=g.dataSource.data();
var s=g.selectedKeyNames();
var r=[];
对于(变量i=0;i=0){
r、 推(d[i]);
}
}

这里有一个可能的解决方案

请查看以下dojo:

与其他解决方案一样,我正在获取数据,但在选定的项目上使用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数据源的默认get方法,该方法映射到数据源模式中模型的ID

这将生成当前页面数据。我需要所有页面上的所有选中数据项我可以使用$(“#grid”).getKendoGrid().selectedKeyNames()获得选中ID。如何使用选中ID浏览数据源?我已经用一个如何收集所有选中项的示例扩展了我的答案。