如何在ASP.NET中的Postback完成后滚动到页面底部?

8

如何在asp.net的postback完成后滚动到页面底部?

当我点击主从关系中的“显示详情”时,我的页面上有许多细节信息,该页面显示了许多数据。那么如何自动滚动到页面底部呢?

5个回答

14

来自Hosam Kamel的页面

要保持大型网页的滚动位置,可以使用以下这些方法之一:

1- 使用Web.config页面部分标签 <pages maintainScrollPositionOnPostBack="true" /> :这将维护整个网站页面的滚动位置。

2- 在页面声明中 <%@ Page MaintainScrollPositionOnPostback="true" %> :这将只为该页面维护滚动位置。

3- 通过代码后端编程实现 System.Web.UI.Page.MaintainScrollPositionOnPostBack = true; :这将只为该页面维护滚动位置(与页面声明相同)。


如何使用 <%@ Page MaintainScrollPositionOnPostback="true" %> 但不让页面滚动到底部? - monkey_boys
当前滚动位置是什么? - monkey_boys
对不起,我误解了问题。我曾遇到过类似的情况,用户会滚动到页面底部,进行一次后退并且会失去滚动位置。现在我明白用户在 postback 后直接应该到达页面底部。 - ram

11

你可以注册一个JavaScript函数,将滚动条移动到你想要的某个控件位置,像这样:

    protected void Page_Load(object sender, EventArgs e)
    {
        if (IsPostBack)
        {
            RegisterStartupScript("ScrollScript", "document.getElementById('objectId').scrollIntoView(true);");
        }
    }
更改脚本中的objectId为您想要滚动到的对象的Id。
正如Guy Starbuk在评论中指出的那样,RegisterStartupScript已在.Net 4中弃用,现在推荐的注册脚本方式是:
 ClientScript.RegisterStartupScript(GetType(), "ScrollScript", "document.getElementById('objectId').scrollIntoVie‌​w(true)", true);

3
这是一个很好的答案,对我有用。需要注意的是,在.NET 4中,RegisterStartupScript已被弃用,我使用了以下代码:ClientScript.RegisterStartupScript(GetType(), "ScrollScript", "document.getElementById('ContentPlaceHolder1_postSaveMessageDiv').scrollIntoView(true)", true); - Guy Starbuck

2
在ASP.NET网页中,您可以将OnClientClick事件添加到导致服务器回发的控件上,以使页面滚动到底部。
<asp:Button ID="MyButton" runat="server" Text="Submit" OnClick="MyButton_Click" OnClientClick="window.scrollTo(0, document.body.scrollHeight);" />

需要注意的是,这似乎是提出的解决方案中唯一在updatepanel内工作的。这对OP没有帮助,但可能会帮助从谷歌搜索到这个问题的其他人,就像我一样。 - Jason R

0
这里答案中缺少的一件事是延迟。如果在加载过程中网页高度没有变化,那么一切都很好。但是,如果有很多图片并且您试图滚动到它们之后,它们可能会再次将您的视图弹回去。
所需的是一个window.onload函数调用:
ClientScript.RegisterStartupScript(GetType(), "ScrollScript", "window.onload = function() {document.getElementById('objectid').scrollIntoView(true);}", true);

0

在页面上创建一个锚点,然后在onload事件中:

window.location.href = "#myanchor"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接