我有带有本地数据的Kendo网格以及复选框和分页。我正在所有页面上使用selectedKeynames()获取所有选中的项目ID。 如何在所有页面上获取选中的项目的dataItems?
答案 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。数据源架构。