【发布时间】:2010-10-12 08:59:56
【问题描述】:
在更新面板中有一个计时器。它不断刷新(大约每 2.5 秒)。如果它在滚动时刷新,它将滚动位置设置回部分更新之前的位置:(
我使用的是 ASP.NET 3.5,MaintainScrollPositionOnPostback 设置为 false(即使设置为 true 行为也不会改变)。
不知道为什么会这样,但是可用性很烦人......
亲切的问候, 萨沙
【问题讨论】:
在更新面板中有一个计时器。它不断刷新(大约每 2.5 秒)。如果它在滚动时刷新,它将滚动位置设置回部分更新之前的位置:(
我使用的是 ASP.NET 3.5,MaintainScrollPositionOnPostback 设置为 false(即使设置为 true 行为也不会改变)。
不知道为什么会这样,但是可用性很烦人......
亲切的问候, 萨沙
【问题讨论】:
我们遇到了类似的问题,异步回发会将用户重置到非常长的页面顶部。我们在找到以下代码后解决了它: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>
这使得回发不会在回发返回时重置用户滚动位置。
我不确定这是否正是您遇到的问题。您还可以查看这篇文章:Reset scroll position after Async postback - ASP.NET,其中讨论了在回发发生后设置滚动位置的更可靠的方法。
【讨论】: