问题描述
|
当我单击任何按钮时,我的页面正在重新加载并且页面位置正在更改。
第一页在底部滚动,然后在顶部再次向下移动。
在任何事件单击上刷新页面后,如何保持滚动位置不变。
我试过了
Page.MaintainScrollPositionOnPostBack = true;
在我的页面上加载,但无法正常工作。
使用ajax updatepanel后,我的浏览器卡住了,性能非常慢。
我有一个aspx页面,因为我正在调用5个Web用户控件。
请任何人帮助我..
在任何事件单击上刷新页面后,如何保持滚动位置不变。
解决方法
您是否尝试过在页面上以声明方式设置MaintainScrollPositionOnPostBack属性,
<%@ Page Language=\"C#\" AutoEventWireup=\"true\" CodeFile=\"test.aspx.cs\"
Inherits=\"test\" MaintainScrollPositionOnPostback=\"true\" %>
,看过这篇文章异步回发后保持滚动位置
并在异步回发后检查此线程重置滚动位置-ASP.NET
,我使用了更新面板以及此脚本,它对我来说效果很好。
<script>
var xPos,yPos;
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_beginRequest(BeginRequestHandler);
prm.add_endRequest(EndRequestHandler);
function BeginRequestHandler(sender,args) {
xPos = document.getElementById(\"<%=Panel4.ClientID %>\").scrollLeft;
yPos = document.getElementById(\"<%=Panel4.ClientID %>\").scrollTop;
}
function EndRequestHandler(sender,args) {
document.getElementById(\"<%=Panel4.ClientID %>\").scrollLeft = xPos;
document.getElementById(\"<%=Panel4.ClientID %>\").scrollTop = yPos;
}
</script>