我有一个更新面板,其中我有datalist。Ajax更新面板滚动条问题
此更新面板每隔1秒触发一次以从数据库中检索数据。
我已将此更新面板保存在启用了垂直滚动的div标记中。
但是,当我得到新的数据,滚动条不会自动调整!
我已经尝试了maintaincrollback选项,但它不工作。
是否有任何选项可以在updatepanel触发后将滚动条保持在原始位置?
我有一个更新面板,其中我有datalist。Ajax更新面板滚动条问题
此更新面板每隔1秒触发一次以从数据库中检索数据。
我已将此更新面板保存在启用了垂直滚动的div标记中。
但是,当我得到新的数据,滚动条不会自动调整!
我已经尝试了maintaincrollback选项,但它不工作。
是否有任何选项可以在updatepanel触发后将滚动条保持在原始位置?
这是我喜欢避免的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>
请试试这个:
<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>
谢谢;)对于我的情况,我不需要setTimeout。 – 2014-05-27 16:54:50
在这种情况下,滚动条不会调整为添加到底部的新记录。 – solairaja 2009-10-25 06:04:35