Как получить dataItems selectedKeyNames проверенной строки на всех страницах в сетке кендо - PullRequest
0 голосов
/ 22 января 2019

У меня есть сетка кендо с локальными данными, флажок и нумерация страниц. Я получаю все проверенные элементы Id с помощью selectedKeynames () на всех страницах. Как я могу получить dataItems проверенных iems на всех страницах?

Ответы [ 2 ]

0 голосов
/ 22 января 2019

Вот возможное решение для вас.

Пожалуйста, просмотрите следующее додзё: 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));
   });


 }

Это тогда уменьшит количество циклов, которые вам нужно сделать, и, поскольку вы знаете, какие ключи находятся в выделении, тогда это просто использует метод get по умолчанию для источника данных kendo, который сопоставляется с идентификатором модели в схема источника данных.

0 голосов
/ 22 января 2019

Если вы используете 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]);
  }
}
...