【问题标题】:How to reload kendo grid with filtered data?如何使用过滤后的数据重新加载剑道网格?
【发布时间】:2020-02-13 10:03:48
【问题描述】:

我有一个剑道网格,我在其中一列上选择了过滤器,我正在重新加载网格,我希望在重新加载网格时有相同的过滤器。

我正在使用以下代码重新加载网格。它可以工作,但它没有显示选中的过滤器项目。我在过滤器中检查了 IDR,然后重新加载了页面,它显示选择了 1 个项目,但没有显示 IDR 已选中。

function ReloadGrid() {
    var grid = $('#gridId').data('kendoGrid');
    grid.dataSource.read();
    grid.setDataSource(grid.dataSource);
}

【问题讨论】:

标签: kendo-ui kendo-grid kendo-asp.net-mvc


【解决方案1】:

有两种方法可以实现这一点。

一种方法是将过滤器保存在数据库中,第二种方法是使用评论中提到的本地存储。

我更喜欢第二个,使用本地存储来保存过滤器并在读取时加载它。

@GaloisGirl 为您指明了正确的方向。

再次检查此示例:Persist state

locale storage 的基本用法是将一些数据保存在某个名称(键、值)下:

    let person = {
        name: 'foo',
        lastName: 'bar'
    };

    let save = function (person) {
        let personString = JSON.stringify(person);
        localStorage.setItem('person', personString);
        console.log('Storing person: ', personString);

    };

    let load = function () {
        let personString = localStorage.getItem('person'); // <----string
        let person = JSON.parse(personString); // <----object
        console.log('Stored person: ', person);
    };

    let remove = function (name) {
        localStorage.removeItem(name);
        console.log('Removed from local storage!');
    };

    save(person);
    load();
    remove(person.name);

在剑道世界中,您需要将网格的当前选项状态保存在本地存储中,您可以通过在示例中添加按钮来实现此目的,或者通过更改或window.onbeforeunload 或在您的示例中添加按钮来实现,然后重新加载网格。

您可以在浏览器的应用程序选项卡下查看保存的数据,例如。铬合金:

希望对你有帮助,gl!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多