#c# #asp.net #refresh #pager
#c# #asp.net #обновить #пейджер
Вопрос:
У меня есть listview и привязка его к элементам, извлекаемым из базы данных. Я использовал пейджер для перехода на другую страницу. Но проблема в том, что предположим, что в данный момент я нахожусь на странице под номером 25 и обновил страницу, нажав клавишу F5 или нажав на кнопку обновления браузера, она перенаправит меня на страницу под номером 1. Я имею в виду первую страницу. Но я хочу, чтобы после обновления также это было на текущей странице, я имею в виду на странице 25. Я не понимаю, почему это происходит.
Комментарии:
1. Находится ли ваш listview на панели обновления? Если это так, то это может быть просто загрузка первой страницы, потому что это все, что есть в истории браузера.
Ответ №1:
Лучше добавить строку запроса с текущим номером страницы. например, предположим, что ваша страница является.aspx и просто передайте строку запроса, подобную этой, a.aspx?pg=1.
при загрузке страницы if(Request.QueryString["pg"]!=null)
, а затем просто отобразите записи страницы 1. Предположим, если вы хотите отобразить на 25-й странице, тогда URL будет таким: a.aspx?pg=25
.Таким образом, если пользователь обновляет с помощью F5, он по-прежнему отображает те же данные.Если страница подверглась обратной отправке (из-за события нажатия кнопки или изменения индекса в выпадающем списке и т.д.), Она также отображает ту же запись из-за строки запроса. Вы также можете изменить номер страницы, перенаправив его на ту же страницу с другим значением в строке запроса, например: Response.Redirect("a.aspx?pg=26")
.
Я думаю, это решит вашу проблему.
Ответ №2:
Если вы программно привязываетесь к событию загрузки страницы, это произойдет. Вы могли бы установить переменную сеанса, когда пользователь меняет страницу, и управлять этим также в событии загрузки страницы.