Javascript 剑道UI网格-如何停留在所选网格页面上

Javascript 剑道UI网格-如何停留在所选网格页面上,javascript,kendo-ui,Javascript,Kendo Ui,我有一个带有Ajax绑定的KendoUIMVC网格。用户可以单击行在产品详细信息页面上查看产品详细信息 问题是,若用户移动到网格页面3,转到产品详细信息页面,然后单击“上一步”按钮“网格刷新”,并向他们显示第一个网格页面 单击“后退”按钮后,网格是否可能停留在第3页?您可以通过以下方式移动到第3页:$(“#网格”).data().kendoGrid.dataSource.page(3); 因此,您只需将“当前页面”保存在cookie或URL中(这一个更好)。 然后转到第3页dater剑道网格数据

我有一个带有Ajax绑定的KendoUIMVC网格。用户可以单击行在产品详细信息页面上查看产品详细信息

问题是,若用户移动到网格页面3,转到产品详细信息页面,然后单击“上一步”按钮“网格刷新”,并向他们显示第一个网格页面


单击“后退”按钮后,网格是否可能停留在第3页?

您可以通过以下方式移动到第3页:$(“#网格”).data().kendoGrid.dataSource.page(3); 因此,您只需将“当前页面”保存在cookie或URL中(这一个更好)。
然后转到第3页dater剑道网格数据绑定:)。。。我还没有测试它,但我认为它是有效的:)

您可以通过以下方式转到第3页:$(“#网格”).data().kendoGrid.dataSource.page(3); 因此,您只需将“当前页面”保存在cookie或URL中(这一个更好)。
然后转到第3页dater剑道网格数据绑定:)。。。我还没有测试过它,但我认为它可以工作:)

实际上,您必须实现网格寻呼机的更改侦听器:

$(“#网格”).kendoGrid({
... 
可分页:{
更改:功能(e){
location.hash=e.index;//或设置cookie
}           
},
});
然后收听位置(或)变化。位置示例:

$(窗口).on('hashchange',function()){
var gridPager=$('#grid').data(“kendoGrid”).pager;
var gridPage=gridPager.page(),currentPage=getPageFromBrowserWithSomeDefault();
//只在必要时更新,因为剑道不做额外的比较
//UPD:若服务器未返回任何结果,gridPage将为0而不是1
如果(gridPage>0&&gridPage!=currentPage){
gridPager.page(当前页面);
}     
}); 
棘手的事情是使直接导航成为可能。因为在开始时,数据源对项目的数量一无所知,所以除了第一个页面之外,它不允许请求其他页面。因此,请务必执行以下操作:

$(“#网格”).kendoGrid({
...
自动绑定:是的,
});
一旦获得并处理了响应,您就可以触发“hashchange”处理程序来更新网格(例如在ajax调用的“success”处理程序中):


实际上,您必须实现网格寻呼机的更改侦听器:

$(“#网格”).kendoGrid({
... 
可分页:{
更改:功能(e){
location.hash=e.index;//或设置cookie
}           
},
});
然后收听位置(或)变化。位置示例:

$(窗口).on('hashchange',function()){
var gridPager=$('#grid').data(“kendoGrid”).pager;
var gridPage=gridPager.page(),currentPage=getPageFromBrowserWithSomeDefault();
//只在必要时更新,因为剑道不做额外的比较
//UPD:若服务器未返回任何结果,gridPage将为0而不是1
如果(gridPage>0&&gridPage!=currentPage){
gridPager.page(当前页面);
}     
}); 
棘手的事情是使直接导航成为可能。因为在开始时,数据源对项目的数量一无所知,所以除了第一个页面之外,它不允许请求其他页面。因此,请务必执行以下操作:

$(“#网格”).kendoGrid({
...
自动绑定:是的,
});
一旦获得并处理了响应,您就可以触发“hashchange”处理程序来更新网格(例如在ajax调用的“success”处理程序中):


您可以在转到详细信息页面之前保持网格状态

在详细说明之前:

var grid = $("#grid").data("kendoGrid");
localStorage["kendo-grid-options"] = kendo.stringify(grid.getOptions()); 
文件加载时:

$(document).ready(function() {
    var grid = $("#grid").data("kendoGrid");
    var options = localStorage["kendo-grid-options"];
    if (options)
        grid.setOptions(JSON.parse(options));
});

您可以在进入详细信息页面之前保持网格状态

在详细说明之前:

var grid = $("#grid").data("kendoGrid");
localStorage["kendo-grid-options"] = kendo.stringify(grid.getOptions()); 
文件加载时:

$(document).ready(function() {
    var grid = $("#grid").data("kendoGrid");
    var options = localStorage["kendo-grid-options"];
    if (options)
        grid.setOptions(JSON.parse(options));
});

你找到解决方案了吗?你找到解决方案了吗?你能详细说明你的答案吗?再加上一点关于你提供的解决方案的描述吗?@abarisone检查我的答案你能详细说明你的答案吗?再加上一点关于你提供的解决方案的描述吗?@abarisone检查我的答案