避免使用Kendo Grid Options保存过滤器

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

我像下面的代码一样保存网格状态。

//for saving Grid State
function SaveGridSettings() {
    var grid = $("#myGrid").data("kendoGrid");
    localStorage["GridSettings"] = kendo.stringify(grid.getOptions());
}

//for applying Saved State
function setGridSettings() {
    var grid = $("#myGrid").data("kendoGrid");
    var options = localStorage["GridSettings"];
    if (options) {
        grid.setOptions(JSON.parse(options));
    }
}

这还节省了一些额外的事情,例如排序和过滤。我对保存的所有内容都没问题,但没有过滤器。您是否知道有什么方法可以避免保存过滤器,因为它会使用户感到烦恼,就像最后一个搜索字符串未获取任何记录,然后在将来用户看到空网格并开始大吼大叫在我们身上。此外,将设置应用回网格后,“导出到Excel”按钮也将被删除。

javascript jquery kendo-grid kendo-asp.net-mvc
2个回答
0
投票

在这里,我通过在保存之前从选项中排除过滤器对象来获得解决方案。请在保存网格选项时尝试此操作。

var Options = grid.getOptions();
delete Options.dataSource.filter;
localStorage[name] = kendo.stringify(Options);

0
投票

我还在Kendo UI上工作,我的目标是保留kendo-grid过滤器,使其在页面重新加载时或在重定向时遇到以下问题,1)重新加载后或重定向时,“导出到Excel”按钮将被删除。2)将过滤器保存在本地存储中后,网格中的“编辑”按钮不起作用,但在保存到本地存储中之前,该按钮起作用。

请帮助。

    $(document).ready(function () {
    $("#gridVerificationEntries").data("kendoGrid").setOptions(JSON.parse(localStorage["GridSettings"]));
});
function grid_dataBound() {
    localStorage.clear('GridSettings');
    localStorage["GridSettings"] = kendo.stringify($("#gridVerificationEntries").data("kendoGrid").getOptions());
}
© www.soinside.com 2019 - 2024. All rights reserved.