Сохраните позицию прокрутки в полях списков в updatepanels, НЕ страницу

 UPDATE ( SELECT t1.value, t2.CODE
          FROM table1 t1
          INNER JOIN table2 t2 ON t1.Value = t2.DESC
          WHERE t1.UPDATETYPE='blah')
 SET t1.Value= t2.CODE
7
задан Xaisoft 13 February 2009 в 06:39
поделиться

2 ответа

Вы сталкиваетесь с этой проблемой, потому что UpdatePanel полностью замены Ваш прокрученный <select> элемент с новым, когда асинхронный запрос возвращается.

Возможные решения:

  1. Использование JavaScript для хранения scrollTop свойство <select> элемент в скрытом элементе формы перед эти UpdatePanel отправлен (путем вызова ClientScriptManager.RegisterOnSubmitStatement метод) и затем установки его на новом <select>, когда вызов Ajax возвращается. Это будет утомительно, подвержено ошибкам, и вероятно не очень совместимо (см. здесь ).

  2. Использование JavaScript для хранения <select> selectedIndex свойство и повторный выбор, что объект, когда вызов Ajax возвращается. Очевидно, это не будет работать, если пользователь ничего еще не выбрал.

  3. не используют UpdatePanel s. Попробуйте jQuery + методы страницы ASP.NET вместо этого.

7
ответ дан 6 December 2019 в 23:14
поделиться

Кажется, что следующий пример кода прокручивает следующим образом:

  • Internet Explorer 8: После обратной передачи выбранный пункт является первым видимым объектом.

  • Firefox: После обратной передачи выбранный пункт всегда видим (но мог бы быть последний видимый объект).

  • Chrome: После обратной передачи мог бы быть скрыт выбранный пункт, так как поле списка прокручивает к вершине, как Вы говорите.

<asp:UpdatePanel ID="up1" runat="server">
    <ContentTemplate>
        <asp:ListBox ID="lb1" runat="server" Height="100px" AutoPostBack="true">
            <asp:ListItem>A</asp:ListItem>
            <asp:ListItem>B</asp:ListItem>
            <asp:ListItem>C</asp:ListItem>
            <asp:ListItem>D</asp:ListItem>
            <asp:ListItem>E</asp:ListItem>
            <asp:ListItem>F</asp:ListItem>
            <asp:ListItem>G</asp:ListItem>
            <asp:ListItem>H</asp:ListItem>
        </asp:ListBox>
    </ContentTemplate>
</asp:UpdatePanel>
0
ответ дан 6 December 2019 в 23:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: