如何使用过滤后的数据重新加载 kendo 网格?

How to reload kendo grid with filtered data?

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

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

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

有两种方法可以实现。

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

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

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

再次检查这个例子:Persist state

语言环境存储的基本用法是将一些数据保存在某个名称(键,值)下:

    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);

在 kendo 世界中,您需要在本地存储中保存网格的当前选项状态,您可以通过添加按钮来实现这一点,例如示例或动态更改或 window.onbeforeunload 等在您的示例中,重新加载网格之前。

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

希望对您有所帮助,gl!