如何在asp.net刷新网页后获取当前页面?

时间:2010-11-09 11:08:12

标签: ajax

我在数据库中有40条记录,但是我使用网格面板在商店网格中的每个页面中显示10条记录。

同样,我正在使用Ajax进行事件。问题是当我刷新页面或网格时,它会显示第一页中的第一条记录。刷新数据时如何获取当前页面数据?

我怎样才能避免这个问题,有人可以帮助我吗?

2 个答案:

答案 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];
}