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



>我有一个场景,用户能够在网格上选择多个单元格。我想验证用户选择并取消选择任何无效单元格。我正在尝试在网格上的更改函数中实现这一点。我目前的方法是获取当前选定的单元格,确定哪些单元格是有效的,然后选择我找到的有效单元格列表。

根据 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;
            }
        }
    };

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

最新更新