Я столкнулся с той же проблемой, и в моем случае она была вызвана сломанными фильтрами.
Я создал фильтр Textbox, и во время разработки я невольно добавил OnFilterChanged();
в событие FilterControl Page_Load
для простоты. Позже он был устаревшим, так как я скопировал его в событие TextChanged
, так как в предыдущем методе есть глюки.
К сожалению, в List.aspx.cs находится следующий код:
protected void DynamicFilter_FilterChanged(object sender, EventArgs e)
{
GridView1.PageIndex = 0;
}
В результате при каждой загрузке страницы PageIndex GridView сбрасывается. И поскольку Page_Load
вызывается до DynamicFilter_FilterChanged
перед обработчиком события кнопки следующей страницы, результат будет:
На любой странице списка с более чем одной страницей:
- Нажатие затем, что бы ни текущий
PageIndex
переместился на страницу 2
- Нажав на предыдущий, независимо от текущего
PageIndex
перейдет на страницу 1
- Другие элементы управления навигацией работают по назначению, включая ввод номера страницы.
Чтобы решить проблему, я просто удалил OnFilterChanged();
из Page_Load
в фильтре.
Возможно, вам придется проверить каждый сторонний фильтр. Или вы можете закомментировать событие DynamicFilter_FilterChanged
, чтобы узнать, виноваты ли фильтры.