Проблема с полосой прокрутки панели обновления Ajax - PullRequest
0 голосов
/ 22 октября 2009

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

Эта панель обновления срабатывает каждую 1 секунду, чтобы извлечь данные из базы данных.

Я сохранил эту панель обновления внутри тега div с вертикальной прокруткой.

Но когда я получаю новые данные, полоса прокрутки не настраивается автоматически !!!

Я пробовал опцию keepasrollback, но она не работает.

Можно ли сохранить полосу прокрутки в исходном положении после срабатывания панели обновления?

Ответы [ 2 ]

2 голосов
/ 22 октября 2009

Пожалуйста, попробуйте это:

<script>
  var prm = Sys.WebForms.PageRequestManager.getInstance();
  prm.add_beginRequest(function(){
     window.dTop = document.getElementById('divIdHere').scrollTop;
  });

  prm.add_endRequest(function(){
       setTimeout(function(){
         document.getElementById('divIdHere').scrollTop = window.dTop;
      },100);
  });
</script>
1 голос
/ 22 октября 2009

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

Полагаю, вы разработали страницу, подобную приведенной ниже

<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional/Always">
    <ContentTemplate>
        <div style="height: 400px/300px; overflow-y:scroll;"> 
            <asp:DataList ID="DataList1" runat="server">
                ....
            </asp:DataList>
        </div>
    </ContentTemplate>
</asp:UpdatePanel>

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

<div style="height: 400px/300px; overflow-y:scroll;"> 
    <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional/Always">
        <ContentTemplate>
                <asp:DataList ID="DataList1" runat="server">
                    ....
                </asp:DataList>
        </ContentTemplate>
    </asp:UpdatePanel>
</div>
...