2009-10-22 84 views
0

我有一个更新面板,其中我有datalist。Ajax更新面板滚动条问题

此更新面板每隔1秒触发一次以从数据库中检索数据。

我已将此更新面板保存在启用了垂直滚动的div标记中。

但是,当我得到新的数据,滚动条不会自动调整!

我已经尝试了maintaincrollback选项,但它不工作。

是否有任何选项可以在updatepanel触发后将滚动条保持在原始位置?

回答

1

这是我喜欢避免的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> 
+0

在这种情况下,滚动条不会调整为添加到底部的新记录。 – solairaja 2009-10-25 06:04:35

2

请试试这个:

<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> 
+0

谢谢;)对于我的情况,我不需要setTimeout。 – 2014-05-27 16:54:50