我保持标题的通用性,因为我不在乎我得到的答案是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));
}
}
});
});
问题:我可以保存网格的状态(包括列顺序,过滤器等),但是当我使用加载按钮还原它时,网格的命令列消失了。
如何在还原过程中保留这些按钮?
答案 0 :(得分:2)
我们的另一位开发人员正在另一页上解决这个确切的问题,为我解决了这个问题。在加载网格设置之前,需要先分离工具栏。在我看来,这似乎很棘手,但根据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);
}
}
});
});