如何:在 ASP.NET Web 服务器控件上设置焦点
更新:2007 年 11 月
如果焦点在应用程序中非常重要,则可以使用服务器代码将焦点置于特定的 ASP.NET Web 服务器控件上。可以将焦点动态置于特定的控件上,也可以指定控件默认获得焦点。可以将窗体作为整体设置默认焦点,也可以在 Panel 控件的子控件上设置默认焦点。
可以将焦点置于以下类型的控件上:
Button、LinkButton 和 ImageButton 控件
CheckBox 控件
DropDownList 控件
FileUpload 控件
HyperLink 控件
ListBox 控件
RadioButton 控件
TextBox 控件
还可以将焦点设置到包含上面列出的一个或多个控件的控件上。例如,可以将焦点设置到 Login 控件上。在这种情况下,焦点将被置于 Login 控件内的第一个符合要求的控件上。
一般情况下,如果将焦点设置到无法接收焦点的控件或者隐藏或禁用的控件上,则将忽略此调用。如果尝试在非可视控件(如数据源控件)上设置焦点,则将引发异常。
说明: |
---|
需要在浏览器中启用客户端脚本才能设置焦点。 |
在 ASP.NET Web 服务器控件上设置焦点
调用该控件的 Focus 方法。
- 或 -
调用页的 SetFocus 方法,以向该页传递要在上面设置焦点的控件的 ID。
下面的代码示例演示如何在 ID 为 TextBox1 的控件上设置焦点:
安全说明: 该示例具有一个文本框,用于接受用户输入,这是一个潜在的安全威胁。默认情况下,ASP.NET 网页验证用户输入是否不包括脚本或 HTML 元素。有关更多信息,请参见脚本侵入概述。
[Visual Basic] Protected Sub Page_Load(ByVal sender As Object, _ ByVal e As System.EventArgs) TextBox1.Focus() End Sub
protected void Page_Load(object sender, EventArgs e) { TextBox1.Focus(); }
在窗体或面板中设置默认焦点
设置页中的 form 元素的 DefaultFocus 属性或 Panel 控件的该属性。
下面的代码示例演示默认焦点设置为控件 TextBox1 的页:
<%@ Page Language="VB" %> <html> <head runat="server"> <title>Test Page</title> </head> <body> <form id="form1" runat="server" defaultfocus="TextBox1" > <div> <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <br /> <asp:Button ID="Button1" runat="server" Text="Button" /> <br /> </div> </form> </body> </html>
<%@ Page Language="C#" %>
<html>
<head runat="server">
<title>Test Page</title>
</head>
<body>
<form id="form1" runat="server" defaultfocus="TextBox1" >
<div>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<br />
<asp:Button ID="Button1" runat="server" Text="Button" />
<br />
</div>
</form>
</body>
</html>