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

时间:2011-05-24 11:11:21

标签: c# asp.net scrollbar

当我点击任何按钮时,我的页面正在重新加载,页面位置正在变化。

第一页滚动到底部然后继续向上移动到下方。

在任何事件点击后,如何在页面刷新后保持滚动位置相同。

我试过

Page.MaintainScrollPositionOnPostBack = true;

在我的页面加载但它无法正常工作。

我在使用它之后使用了ajax updatepanel我的浏览器卡住了,性能非常慢。

我有一个aspx页面,因为我正在调用5个Web用户控件。

请任何人帮助我..

在任何事件点击后,如何在页面刷新后保持滚动位置相同。

3 个答案:

答案 0 :(得分:2)

您是否尝试以声明方式在页面上设置MaintainScrollPositionOnPostBack属性,

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="test.aspx.cs"
    Inherits="test" MaintainScrollPositionOnPostback="true" %>

答案 1 :(得分:1)

答案 2 :(得分:0)

我使用了更新面板以及这个脚本,并且它对我有用..

 <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>