我有两个用 asp.net 编写的网页,vb.net 是后面的代码。当我单击一个页面中的下一个按钮时,应该会出现第二页。第二页是巨大的,当我点击next按钮时,页面来了,但它的焦点是底部,为了到顶部,我需要使用滚动,我想要的是让焦点顶部。
问问题
551 次
2 回答
1
您可以使用此脚本,以便您的页面将滚动到页面上的特定控件。
代码应该放在你的 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
于 2012-10-30T14:33:50.587 回答
0
如果您有 aspx,则只需将此脚本添加到页面末尾的 Body 标记之前:
<script type="text/javascript">
window.scrollTo(0,0);
</script>
于 2012-10-30T15:58:21.700 回答