Страница перемещается наверх при обратной передаче контроля в панели обновлений - PullRequest
2 голосов
/ 29 апреля 2009

У меня есть панель обновлений на моей странице, и каждый раз, когда у меня появляется контрольный постбэк, страница прокручивается обратно вверх страницы.

Почему это случилось? Как я могу это исправить?

Ответы [ 4 ]

4 голосов
/ 29 апреля 2009

Я использовал control.focus () на стороне сервера, чтобы исправить эту проблему. Например:

Protected Sub ddlGroups_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ddlGroups.SelectedIndexChanged

        LoadGroups()

        ddlGroups.Focus()

 End Sub

Я не знаю, является ли это лучшим способом, но сейчас он работает для меня.

1 голос
/ 04 мая 2012

Я знаю, что на этот вопрос уже был дан ответ, но я думаю, что у меня есть более простое решение. Мне нужно решение на стороне клиента, и это работало просто отлично.

Что происходило со мной, так это то, что я загрузил страницу, а затем отложил загрузку Panel после полной загрузки главной страницы. Если бы я прокрутил свою главную страницу вообще, тогда, когда Panel закончила загрузку, вся моя страница просто прокрутилась бы вверх. Таким образом, этот код отслеживает любую прокрутку, которую я мог бы выполнять во время загрузки Panel. Затем, когда панель закончила загрузку, вместо прокрутки вверх, страница просто прокручивается туда, где я только что был. Пока что это прекрасно работает в IE, Chrome, FF, Opera и Safari

<script type="text/javascript">
    var yPos;
    var prm = Sys.WebForms.PageRequestManager.getInstance();    
    prm.add_endRequest(EndRequestHandler);
    $(window).scroll(function () { yPos = $(window).scrollTop(); });
    function EndRequestHandler(sender, args) {        
        $(window).scrollTop(yPos);
    }
</script>
0 голосов
/ 03 марта 2016

Пожалуйста, попробуйте обработчики PageRequestManager

<script>
              Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);



        function EndRequestHandler(sender, args) {
            try {

                sender._controlIDToFocus = null;


            }
            catch (e) {
            }
        }

</script>
0 голосов
/ 29 апреля 2009

Установить MaintainScrollPositionOnPostBack Свойство на странице.

Редактировать: Хммм, ладно ... это похоже на проблему, которую вы видите?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...