Выбор нескольких ячеек на KendoGrid в Javascript - PullRequest
0 голосов
/ 29 марта 2019

У меня есть сценарий, в котором пользователь может выбрать несколько ячеек в сетке. Я хотел бы подтвердить выбор пользователей и отменить выбор любых недействительных ячеек. Я пытаюсь добиться этого с помощью функции изменения в моей сетке. Мой текущий подход состоит в том, чтобы получить выбранные в данный момент ячейки, определить, какие ячейки являются действительными, и выбрать список найденных допустимых ячеек.

Согласно документации 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;
            }

        }
    };

1 Ответ

0 голосов
/ 29 марта 2019

grid.select (validItems) принимает ячейки в качестве параметра. Проблема в том, что мне нужно вызвать grid.clearSelect () перед вызовом grid.select, чтобы получить желаемый эффект.

...