下一页在asp.net中向下滚动

时间:2012-10-30 14:27:25

标签: asp.net

我有两个用asp.net编写的网页,vb.net是代码背后的代码。当我单击一页中的下一个按钮时,应该出现第二页。第二页是巨大的,当我点击下一个按钮时,页面即将到来,但它的焦点是底部,为了顶部,我需要使用滚动,我想要的是使焦点顶部。< / p>

2 个答案:

答案 0 :(得分:1)

您可以使用此script,以便您的网页滚动到您网页上的特定控件。

代码应放在CodeBehind中。 只需选择位于页面顶部的一些控件即可完成工作..

我应该注意,将页面滚动到底部是一种不寻常的行为,默认情况下不应该发生。你应该首先检查它为什么会发生。

<强>更新

更新了代码,因为那里使用的方法已经过时......

private void FocusControlOnPageLoad(string ClientID)
{

            ClientScript.RegisterClientScriptBlock(this.GetType(), "FocusOnControl",

            @"<script> 

              function ScrollView()

              {
                 var el = document.getElementById('" + ClientID + @"')
                 if (el != null)
                 {        
                    el.scrollIntoView();
                    el.focus();
                 }
              }

              window.onload = ScrollView;

              </script>");

}

用法:

protected void Page_Load(object sender, EventArgs e)
{
    FocusControlOnPageLoad(yourcontrol.ClientID); 
}

等效VB.Net:(感谢@Mahyar)

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    FocusControlOnPageLoad(yourcontrol.ClientID)
End Sub
Private Sub FocusControlOnPageLoad(ByVal ClientID As String)
    Dim script As String = _
        "<script>" + _
            "function ScrollView()" + _
            "{" + _
                "var el = document.getElementById('" + ClientID + "')" + _
                "if (el != null)" + _
                "{" + _
                "el.scrollIntoView();" + _
                "el.focus();" + _
                "}" + _
            "}" + _
            "window.onload = ScrollView;" + _
        "</script>"
    ClientScript.RegisterClientScriptBlock(Me.GetType(), "FocusOnControl", script)
End Sub

答案 1 :(得分:0)

如果您有aspx,那么只需将此脚本添加到Body标签之前的页面末尾:

<script type="text/javascript">
    window.scrollTo(0,0);
</script>