Если вы перезагрузите страницу (например, с помощью клавиши F5
), сервер получит новый запрос, и контекст предыдущего запроса будет потерян, поэтому представление сетки снова отобразит свою первую страницу.
Однако, если вы отправляете сообщение только на сервер (например, нажав кнопку, отправляющую страницу), и ViewState включен для вида сетки, он должен сохранить свою текущую страницу.
Если вы абсолютно хотите сохранить текущую страницу при перезагрузке страницы (и не только после обратной передачи), вам нужно где-то сохранить текущий индекс страницы, например, в состоянии сеанса пользователя :
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];
}