ASP.NET:计时器和滚动位置

时间:2009-03-10 08:36:37

标签: asp.net ajax

在updatepanel中有一个计时器。它不断刷新(大约每2.5秒)。如果在滚动时刷新,则将滚动位置设置回部分更新之前的位置:(

我正在使用ASP.NET 3.5并且MaintainScrollPositionOnPostback设置为false(即使设置为true行为也不会更改)。

不知道为什么会发生这种情况,但可用性很烦人......

亲切的问候, 的Sascha

1 个答案:

答案 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,它讨论了在回发发生后设置滚动位置的更健壮的方法。