如何记住Kendo Grid中第二次请求的过滤值?

时间:2015-12-03 10:30:41

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

我正在使用Kendo Grid在我的MVC Web应用程序中显示记录。我想要的是,当我用一些值过滤网格,并从该页面请求另一个页面时,当我再次请求该网格页面时,我希望我的过滤器值将变为在先前的请求中设置的。

1 个答案:

答案 0 :(得分:3)

我是通过以下方式完成的: 首先,您必须将当前过滤器存储在某处 - 我使用javaScript的localStorage。只要未清除浏览器缓存,这就是持久的。 你可以这样做,例如离开页面等。

// get the grid as js object
var grid = $("#yourGridID").data("kendoGrid");

// Store the current filter (must be a string, so use JSON)
localStorage["myFilter"] = JSON.stringify(grid.dataSource.filter().filters)

要恢复过滤器,您可以调用

grid.dataSource.filter(JSON.parse(localStorage["myFilter"]))

这应该在网格初始化之后完成,例如在网格的 dataBound 事件中。当然,您应该检查localStorage["myFilter"]是否存在。

如果您想保存其他内容,例如列带/订单,排序等,您还可以使用grid.getOptions(options)grid.setOptions(options)来保存和恢复完整的网格设置。这些选项也可以保存在localStorage中(在这里也使用JSON)