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);
}
}
});
});
我保留了通用标题,因为我不在乎我得到的答案是在 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);
}
}
});
});