e(...)。find(...)。addBack不是Kendo Grid SetOptions函数

时间:2016-03-28 20:01:06

标签: javascript kendo-ui kendo-grid

我有一个带有按钮的网格,可以将您带到其他视图,其中显示所选项目的所有数据,我尝试做的是当用户返回网格视图时,过滤器网格保持不显示所有数据。

为了保存过滤器,我使用了剑道网格的getOptions方法并使用以下代码存储在localStorage上:

var grid = $("#Grid").data("kendoGrid");
var op = grid.getOptions();
localStorage["KendoGridOptions"] = JSON.stringify(op);

得到这个:

object in console

问题是当我尝试使用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行上收到此错误:

enter image description here

有关如何解决该错误或如何获得所需行为的任​​何建议?

2 个答案:

答案 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);

}

}