有没有办法捕获过滤器更改的事件来存储/显示过滤器选项?
我会用它来在网站重新加载后初始化网格过滤器(就像它们一样)。
谢谢!
答案 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 || {},
...,
}