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