在 Javascript 中选择 KendoGrid 上的多个单元格

Selecting Multiple Cells on a KendoGrid in Javascript

我有一个场景,其中用户能够 select 网格上的多个单元格。我想验证用户 selection 和 deselect 任何无效单元格。我试图在我的网格上的更改功能中实现这一点。我目前的方法是获取当前 selected 单元格,确定哪些单元格有效,然后 select 我找到的有效单元格列表。

根据Kendo的文档,grid.select() 函数确实接受一个参数,但只接受一个行数组作为参数。这解释了为什么以下内容不起作用。

我需要一个解决方案,它允许我设置突出显示哪些单元格并检索突出显示的单元格(我目前可以通过 grid.select() 方法获得 selected 单元格)。

有合理的方法吗?

$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;
            }

        }
    };

grid.select(validItems) 接受单元格作为参数。问题是我需要在调用 grid.select 之前调用 grid.clearSelect() 以获得所需的效果。