【发布时间】:2014-05-15 17:12:16
【问题描述】:
我在保存/加载 Telerik MVC 网格控件的状态时遇到了一些问题。
我找到了许多使用 Kendo 网格的示例,但是我们没有访问权限或资源来将我们的系统从原始 Telerik MVC Grids 更改为 Kendo。
我可以使用带有以下代码的 Cookie 保存和加载网格的当前状态:
function setState() {
var pricingGrid = $("#PricingGrid").data("tGrid");
var dataSource = pricingGrid.dataSource;
var state = JSON.stringify({
page: pricingGrid.page,
pageSize: pricingGrid.pageSize,
sort: pricingGrid.orderBy,
group: pricingGrid.groupBy,
filter: pricingGrid.filterBy
});
$.cookie("pricingGridState", state);
}
function loadState() {
var grid = $("#PricingGrid").data("tGrid");
var state = JSON.parse($.cookie("pricingGridState"));
if (state)
{
grid.sort(state.sort);
grid.pageTo(state.page);
grid.filter(state.filter);
}
}
这段代码似乎可以解决问题,但它会为每个方法(sort、pageTo 和 filter)触发一个 Rebind 调用。我计划在页面上保存多个网格的状态,并且不希望每个网格在页面加载时重新绑定 3 次。
在 Kendo 中,我似乎可以使用“grid.dataSource.query”方法,但在 Telerik MVC 中我似乎无法获得类似的东西。
感谢任何帮助!
注意:我也尝试将 State 对象从 grid.dataSource 属性中保存下来,但这些对象似乎根本没有加载网格状态。
【问题讨论】:
标签: jquery asp.net-mvc-4 telerik-grid telerik-mvc