Для этого есть небольшой обходной путь, который я давно использовал в ERP.Не уверен, что это лучшее решение, но оно работает.
Я не знаю, используете ли вы пользовательский класс Page или класс по умолчанию System.Web.UI.Page
, но я постараюсь объяснить вам, как высделайте это, и тогда вы узнаете, как лучше всего реализовать это в своей среде, хорошо?
Вы создадите HiddenField
, например, с идентификатором "hfScrollPosition".
Затем вы создадите событие javascript: document.onscroll
или что-то в этом роде, а внутри события вы обновите скрытое поле, чтобы получить текущую позицию прокрутки.Например: document.getElementById("hfScrollPosition").value = document.documentElement.scrollTop;
При этом элемент управления ASP.NET динамически обновляет свое значение в соответствии с положением прокрутки тела.Поэтому, когда какой-то элемент управления на вашей странице выполняет обратную передачу, вы можете поместить следующий код javascript в событие Page_Load:
document.documentElement.scrollTop = document.getElementById("hfScrollPosition").value;
Таким образом, каждый раз, когда ваша страница получает обратную передачу, телоПоложение прокрутки будет корректно обновлено.
РЕДАКТИРОВАТЬ : Я создал скрипку для имитации: https://jsfiddle.net/j26fpgzo/