Kendo:保存和恢复网格状态时如何保留工具栏?

问题描述 投票:0回答:1

我保留了通用的标题,因为我不在乎我得到的答案是 jquery、javascript 还是专门针对 MVC。

我有这个代码来保存和加载网格:

$("#save").click(function() {
var grid = $("#grid").data("kendoGrid");

var dataSource = grid.dataSource;

var state = kendo.stringify(grid.getOptions());


$.ajax({
    method: "POST",
    url: "/ebol/savegrid",
    data: {
        data: state
    }
});
});

$("#load").click(function () {
var grid = $("#grid").data("kendoGrid");

var dataSource = grid.dataSource;

$.ajax({
    url: "/ebol/loadgrid",
    success: function (options) {
        if (options) {
            grid.setOptions(JSON.parse(options));
        }
    }
});
});

问题:我可以保存网格的状态(包括列顺序、过滤器等),但是当我使用加载按钮恢复它时,网格的命令列消失了。

如何在恢复过程中保留这些按钮?

kendo-asp.net-mvc
1个回答
7
投票

我们的另一位开发人员正在另一个页面上解决这个问题,他为我解决了这个问题。您需要在加载网格设置之前分离工具栏。对我来说这似乎很老套,但根据 Kendo 的说法,不支持保存和加载设置,所以这是我们拥有的最好的。我修改后的代码:

    $("#load").click(function () {
    var grid = $("#grid").data("kendoGrid");
    $.ajax({
        url: "/ebol/loadgrid",
        success: function(state) {
            if (state) {
                state = JSON.parse(state);
                let toolBar = $("#grid .k-grid-toolbar").detach();
                grid.setOptions(state);
                $("#grid .k-grid-toolbar").replaceWith(toolBar);
            }
        }
    });
});

编辑(2024)我认为这不再是必要的。他们在 r3 2023 中添加了恢复工具栏的功能,但它破坏了其中的一些按钮。该问题已于 2024 年第一季度解决。

© www.soinside.com 2019 - 2024. All rights reserved.