У меня есть сценарий, в котором пользователь может выбрать несколько ячеек в сетке. Я хотел бы подтвердить выбор пользователей и отменить выбор любых недействительных ячеек. Я пытаюсь добиться этого с помощью функции изменения в моей сетке. Мой текущий подход состоит в том, чтобы получить выбранные в данный момент ячейки, определить, какие ячейки являются действительными, и выбрать список найденных допустимых ячеек.
Согласно документации Kendo, функция grid.select () принимает параметр, но принимает в качестве параметра только массив строк. Это объясняет, почему ниже не работает.
Мне нужно решение, которое позволяет мне определять, какие ячейки подсвечиваются, а также извлекать подсвеченные ячейки (в настоящее время я могу получить выделенные ячейки с помощью метода grid.select ()).
Есть ли разумный способ сделать это?
$scope.myKendoGridOptions = {
selectable: "multiple, cell",
change: function (e) {
if (!$scope.jsSelectChangeEvent) {
var grid = $('#myKendoGrid').data("kendoGrid");
var selectedItems = grid.select();
if (selectedItems.length > 1) {
var validItems = [];
var validRowIndex = selectedItems[0].closest("tr").rowIndex;
for (var i = 0; i < selectedItems.length; i++) {
if (selectedItems[i].closest("tr").rowIndex === validRowIndex) {
validItems.push(selectedItems[i]);
}
}
//Avoids Infinite loop
$scope.jsSelectChangeEvent = true;
//im expecting this to select my valid cells, but it has no effect
grid.select(validItems);
}
} else {
$scope.jsSelectChangeEvent = false;
}
}
};