微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

发生任何事件后如何保留浏览器滚动位置

如何解决发生任何事件后如何保留浏览器滚动位置

| 当我单击任何按钮时,我的页面正在重新加载并且页面位置正在更改。 第一页在底部滚动,然后在顶部再次向下移动。 在任何事件单击上刷新页面后,如何保持滚动位置不变。 我试过了
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>
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。