Если вы перезагрузите страницу (например, с помощью клавиши F5
), сервер получит новый запрос, и контекст предыдущего запроса будет потерян, поэтому вид сетки снова отобразит первую страницу.
Однако, если вы только отправляете сообщение на сервер (например, нажав кнопку, которая отправляет страницу), и ViewState включен для представления сетки, он должен сохранить свою текущую страницу.
Если вы абсолютно хотите сохранить текущую страницу на странице перезагрузки (а не только на обратной стороне), вам необходимо сохранить текущий индекс страницы где-нибудь, например. в пользователя session state:
Session["CurrentGridViewPage"] = yourGridView.PageIndex;
И восстановить, что на странице загрузки:
if (Session["CurrentGridViewPage"] != null) {
yourGridView.PageIndex = (int) Session["CurrentGridViewPage"];
}
EDIT: Если вам нужно упорствовать индекс страниц для нескольких страниц на вашем сайте, вам необходимо включить в ключ сеанса - некоторый токен, однозначно идентифицирующий страницу, например 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];
}
Я сделал это. Но он не привязан к конкретной странице. Это код: protected void Refresh_Click (отправитель объекта, StoreRefreshDataEventArgs e) { Обновить(); pgtCombo.PageIndex = (int) Session ["pgIndex"]; pgtCombo.PageSize = (int) Session ["pgSize"]; Сессия ["pgIndex"] = string.Empty; Сессия ["pgSize"] = string.Empty; } – user520946
На каком языке вы используете сервер? Вероятно, вы также должны повторно пометить свой вопрос, чтобы включить это, так как проблема, которую вы сейчас пытаетесь решить, связана с этим. – Knubo