我有一个带有按钮的网格,可以将您带到其他视图,其中显示所选项目的所有数据,我尝试做的是当用户返回网格视图时,过滤器网格保持不显示所有数据。
为了保存过滤器,我使用了剑道网格的getOptions
方法并使用以下代码存储在localStorage
上:
var grid = $("#Grid").data("kendoGrid");
var op = grid.getOptions();
localStorage["KendoGridOptions"] = JSON.stringify(op);
得到这个:
问题是当我尝试使用setOptions
方法时,我在初始化网格后在$(document).ready
上执行此操作:
var options = localStorage["KendoGridOptions"];
if (options) {
var op = JSON.parse(options);
var grid = $("#Grid").data("kendoGrid");
grid.setOptions({
dataSource: op.dataSource
});
localStorage.removeItem("KendoGridOptions");
}
我在gid.setOptions
行上收到此错误:
有关如何解决该错误或如何获得所需行为的任何建议?
答案 0 :(得分:7)
问题是jQuery版本,在1.8版本上添加了addBack
功能,这个项目仍然有1.7,只需更改版本并且工作完美。
答案 1 :(得分:0)
我通过以下方法实现了。如果您只想要页码,页面大小,排序和过滤仅提及那些。我尝试保存所有选项,我记得有问题。我花了很多时间在这上面。如果您还有任何问题,请告诉我
function saveGridOptions() {
var grid = $("#gridName").data("kendoGrid");
var dataSource = grid.dataSource;
var state = {
page: dataSource.page(),
pageSize: dataSource.pageSize(),
sort: dataSource.sort(),
filter: dataSource.filter()
};
localStorage["kendo-grid-options"] = kendo.stringify(state);
}
function loadGridOptions() {
var grid = $("#gridName").data("kendoGrid");
var state = "";
state = localStorage["kendo-grid-options"];
if (state) {
data = JSON.parse(state);
var options = grid.options;
options.dataSource.page = data.page;
options.dataSource.pageSize = data.pageSize;
options.dataSource.sort = data.sort;
options.dataSource.filter = data.filter;
grid.destroy();
$("#gridName")
.kendoGrid(options);
}
}