在updatepanel中有一个计时器。它不断刷新(大约每2.5秒)。如果在滚动时刷新,则将滚动位置设置回部分更新之前的位置:(
我正在使用ASP.NET 3.5并且MaintainScrollPositionOnPostback设置为false(即使设置为true行为也不会更改)。
不知道为什么会发生这种情况,但可用性很烦人......
亲切的问候, 的Sascha
答案 0 :(得分:6)
我们遇到了类似的问题,异步回发会将用户重置为很长页面的顶部。我们在http://forums.asp.net/t/1047815.aspx
找到以下代码后解决了这个问题我们在页面上的页面页面上插入了以下javascript。
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<script type="text/javascript">
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_beginRequest(beginRequest);
function beginRequest() {
prm._scrollPosition = null;
}
</script>
这使得回发没有在回发返回时重置用户滚动位置。
我不确定这是否正是您遇到的问题。您还可以查看这篇文章:Reset scroll position after Async postback - ASP.NET,它讨论了在回发发生后设置滚动位置的更健壮的方法。