【问题标题】:Kendo grid change row class not working剑道网格更改行类不起作用
【发布时间】:2017-07-03 21:46:20
【问题描述】:

我有一个剑道网格,其中包含用于选择的复选框。 当我单击一个复选框时,我将行的类更改为“k-state-selected”并将行 ID 保存在

var checkedIds = [];

然后我有一个上下文菜单,我可以在其中选择要应用到行的更改。

在这种情况下,我想更改所有行的值 Something。这行得通。

然后,我有这段代码可以恢复之前选择的行。

private setCheckRows(checkedIds) {
            $.each(checkedIds, (index, value) => {
                $("#grid  tbody").find("tr").each(
                    function () {
                        if ($(this).closest("tr").attr("Id") === value) {
                            $(this).closest("tr").addClass("k-state-selected")
                                .attr("style", "background-color: rgb(51,121,181)")
                                .find(".checkbox")
                                .attr("checked", "checked");
                        }
                    });
            });
        }

它有效,但又一次它没有......

如果我选择一个复选框,这段代码什么都不做

if ($(this).closest("tr").attr("Id").replace("task-row-", "") === value) {
                            $(this).closest("tr").addClass("k-state-selected")
                                .attr("style", "background-color: rgb(51,121,181)")
                                .find(".checkbox")
                                .attr("checked", "checked");

                    }

如果我选择两个或更多复选框,则它适用于除第一行之外的所有行。

因此,除第一行之外的所有行都将恢复为选中状态并具有蓝色背景。

这确实是一种很奇怪的行为。

有什么想法吗? 提前谢谢。

【问题讨论】:

标签: kendo-ui kendo-grid


【解决方案1】:

我设法解决了。

我改变了这个

$.ajax({
                type: "POST",
                url: "/Cockpit/SetWorkflowStep",
                dataType: "json",
                data: JSON.stringify(newTaskStatus),
                contentType: "application/json"
            }).done(() => {
                $("#grid").data("kendoGrid").dataSource.read();
                this.setCheckRows(checkedIds); 
            });

进入这个

$.ajax({
                type: "POST",
                url: "/Cockpit/SetWorkflowStep",
                dataType: "json",
                data: JSON.stringify(newTaskStatus),
                contentType: "application/json"
            }).done(() => {
                $("#grid").data("kendoGrid")
                          .dataSource.read()
                          .done(() => { this.setCheckRows(checkedIds); });
            });

现在可以正常使用了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    相关资源
    最近更新 更多