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

Sas*_*cha 3 asp.net ajax

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

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

不知道为什么会这样,但可用性很烦人......

亲切的问候,Sascha

sgr*_*usa 6

我们遇到了类似的问题,异步回发会将用户重置为非常长的页面的顶部.我们在找到以下代码后解决了这个问题:http://forums.asp.net/t/1047815.aspx

我们在页面上的ScriptManager 之后在页面上插入了以下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>
Run Code Online (Sandbox Code Playgroud)

这使得回发没有在回发返回时重置用户滚动位置.

我不确定这是否正是您遇到的问题.您还可以看看这篇文章:在Async postback之后重置滚动位置 - ASP.NET讨论了在回发发生后设置滚动位置的更健壮的方法.