Прокрутка списка вверх на автоответчик - PullRequest
4 голосов
/ 01 сентября 2011

Почему список asp.net всегда прокручивается вверх при выборе элемента, когда автоответчик включен?Как я могу предотвратить это?

Ответы [ 4 ]

4 голосов
/ 25 октября 2012

Я добавил следующий jquery в javascript, чтобы исправить проблему.Я не могу вспомнить, где я нашел решение, но вот оно.Просто добавьте местоположение вашего целевого элемента управления - $ get ('YourDiv_YourPanel').

<script type="text/javascript">
    //Maintain scroll position in given element or control
    var xInputPanel, yInputPanel;
    var xProductPanel, yProductPanel;
    var prm = Sys.WebForms.PageRequestManager.getInstance();
    prm.add_beginRequest(BeginRequestHandler);
    prm.add_endRequest(EndRequestHandler);
    function BeginRequestHandler(sender, args) {
        yInputPanel = $get('MainContent_InputPanel').scrollTop;
        yProductPanel = $get('MainContent_ProductPanel').scrollTop;
    }
    function EndRequestHandler(sender, args) {
        $get('MainContent_InputPanel').scrollTop = yInputPanel;
        $get('MainContent_ProductPanel').scrollTop = yProductPanel;
    }
</script>
2 голосов
/ 19 сентября 2013

У меня была такая же проблема, и я нашел способ сделать это с помощью панелей обновления. Я полагаю, что это происходит из-за того, что список обновляется при обратной передаче, поэтому панели обновления могут помочь нам убедиться, что он не обновляется. Убедитесь, что список находится внутри панели условного обновления с дочерними элементами в качестве триггеров, установленных на «ложь»:

 <asp:UpdatePanel runat="server" ID="updtpnlSearchResults" UpdateMode="Conditional" ChildrenAsTriggers="false">

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

0 голосов
/ 01 сентября 2011

У вас есть несколько вариантов.Вы можете либо установить MaintainScrollPositionOnPostBack в значение true в директиве страницы, либо вы можете поместить список в панель обновлений и использовать AJAX для поддержания позиции прокрутки.

Параметр директивы страницы:

<pages maintainScrollPositionOnPostBack="true" />

Обновитьопция панели:

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <ContentTemplate>
        <asp:ListBox ID="ListBox1" runat="server" ...>
    </ContentTemplate>
</asp:UpdatePanel>
0 голосов
/ 01 сентября 2011

Вам нужна эта директива страницы:

<%@ Page MaintainScrollPositionOnPostback="true" ... %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...