我在数据库中有40条记录,但是我使用网格面板在商店网格中的每个页面中显示10条记录。
同样,我正在使用Ajax进行事件。问题是当我刷新页面或网格时,它会显示第一页中的第一条记录。刷新数据时如何获取当前页面数据?
我怎样才能避免这个问题,有人可以帮助我吗?
答案 0 :(得分:0)
您需要在后端有一个会话来记住当前索引(在执行ajax请求时更新)以及从该索引重新加载页面时。
答案 1 :(得分:0)
如果您重新加载页面(例如,使用F5
键),服务器将收到一个全新的请求,并且上一个请求的上下文将丢失,因此网格视图将再次呈现其第一页。
但是,如果您只回发到服务器(例如,通过单击提交页面的按钮),并且为网格视图启用了ViewState,则应保留其当前页面。
如果您绝对希望在页面重新加载(而不仅仅是回发)中保留当前页面,则需要将当前页面索引保留在某处,例如在用户的session state中:
Session["CurrentGridViewPage"] = yourGridView.PageIndex;
并在页面加载时恢复:
if (Session["CurrentGridViewPage"] != null) {
yourGridView.PageIndex = (int) Session["CurrentGridViewPage"];
}
编辑:如果您需要在网站上保留多个网页的网页索引,则需要在会话密钥中包含一些唯一标识该网页的令牌,例如: Request.AppRelativeCurrentExecutionFilePath:
protected string PageIndexSessionKey
{
get {
return Request.AppRelativeCurrentExecutionFilePath + "$pgIndex";
}
}
// Save.
Session[PageIndexSessionKey] = yourGridView.PageIndex;
// Restore.
if (Session[PageIndexSessionKey] != null) {
yourGridView.PageIndex = (int) Session[PageIndexSessionKey];
}