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

Kendo : How do i keep the toolbar when i save and restore a grid state?

我保留了通用标题,因为我不在乎我得到的答案是在 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,不支持保存和加载设置,所以这是我们拥有的最好的。我修改后的代码:

    $("#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);
            }
        }
    });
});