如何在asp.net中回发完成后滚动到页面底部?

时间:2009-12-16 02:03:47

标签: asp.net javascript

如果在asp.net中回发完成后如何滚动到页面底部?

当我在主要详细信息中单击“显示详细信息”时,页面中有很多详细信息,此页面在我的页面中显示了许多数据。那么如何自动滚动到页面底部?

5 个答案:

答案 0 :(得分:14)

来自Hosam Kamel's page

要保持大网页的滚动位置,您可以使用以下方法:

1-使用Web.config页面部分<pages maintainScrollPositionOnPostBack="true" />

:这将保留所有网站页面的滚动位置。

页面声明<%@ Page MaintainScrollPositionOnPostback="true" %>中的

2-:这将仅保留此页面的滚动位置。

3-以编程方式从System.Web.UI.Page.MaintainScrollPositionOnPostBack = true;后面的代码:这将仅保留此页面的滚动位置(与页面拆分相同)。

答案 1 :(得分:12)

您可以注册一个javascript来将滚动条移动到您想要的某个控件的位置,如下所示:

    protected void Page_Load(object sender, EventArgs e)
    {
        if (IsPostBack)
        {
            RegisterStartupScript("ScrollScript", "document.getElementById('objectId').scrollIntoView(true);");
        }
    }

在脚本中更改要滚动到的对象的Id的objectId。

正如Guy Starbuk在评论中所指出的,{。1}在.Net 4中已被弃用,现在推荐的注册脚本的方法是:

RegisterStartupScript

答案 2 :(得分:0)

在页面上创建锚点,然后在onload上创建:

window.location.href = "#myanchor"

答案 3 :(得分:0)

这里的答案中缺少的一件事是延迟。如果在加载过程中网页的高度没有变化,这一切都很好。但如果有很多图像,你的尝试滚动过去;他们可以再次恢复你的观点。

需要的是window.onload函数调用:

ClientScript.RegisterStartupScript(GetType(), "ScrollScript", "window.onload = function() {document.getElementById('objectid').scrollIntoView(true);}", true);

答案 4 :(得分:0)

在asp.net网页中,您可以向控件添加OnClientClick事件,从而导致服务器回发以将页面滚动到底部。

<asp:Button ID="MyButton" runat="server" Text="Submit" OnClick="MyButton_Click" OnClientClick="window.scrollTo(0, document.body.scrollHeight);" />