在更新面板中有一个计时器。它不断刷新(大约每 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其中讨论了一种在回发发生后设置滚动位置的更可靠的方法。
关于ASP.NET:计时器和滚动位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/629331/