捕获kendo UI网格过滤器将事件更改为保存/加载选项

时间:2017-07-20 16:52:14

标签: javascript filter javascript-events kendo-grid

有没有办法捕获过滤器更改的事件来存储/显示过滤器选项?

我会用它来在网站重新加载后初始化网格过滤器(就像它们一样)。

谢谢!

2 个答案:

答案 0 :(得分:0)

只需订阅过滤器事件:

filter: function(e) {      
  if (e.filter != null) {
        //do something with filter e.g save to local storage or somewhere
  }
}

答案 1 :(得分:0)

感谢Przemysław,

是我使用它作为以下内容来存储/加载会话存储(typescript)中的过滤器。过滤器应该由dataBound(或change)事件 - 回调读取。在网站重新加载后,应该使用已保存的过滤器配置数据源 - 正如您已经提到的那样。

// Save filters to storage
const grid = new kendo.ui.Grid (
    ...,
    dataBound: (e) => {
        const filters: kendo.data.DataSourceFilters = this.kendoGrid.dataSource.filter();
        if (filters) {
            sessionStorage.setItem("kendo-filters", kendo.stringify(currentFilters));
        }
    },
    ...

// Set kendo filters from storage
const o = sessionStorage.getItem("kendo-filters"); 
const filters: any  = o ? JSON.parse(o) : {};
public createDataSourceOData() : kendo.data.DataSource {
    ...,
    filter: filters || {},
    ...,
}