HtmlForm 服务器控件声明性语法
[本文档仅供预览,在以后的发行版中可能会发生更改。包含的空白主题用作占位符。]
创建一个服务器端控件,该控件映射到 <form> HTML 元素并允许您为网页中的元素创建一个容器。
<form
DefaultButton="string"
DefaultFocus="string"
EnableViewState="False|True"
Id="string"
SubmitDisabledControls="False|True"
Visible="True|False"
OnDataBinding="OnDataBinding event handler"
OnDisposed="OnDisposed event handler"
OnInit="OnInit event handler"
OnLoad="OnLoad event handler"
OnPreRender="OnPreRender event handler"
OnUnload="OnUnload event handler"
runat="server"
>
<!--Other controls, input forms, and so on.-->
</form>
备注
使用 HtmlForm 控件对 HTML <form> 元素进行编程。 若要利用回发服务,则所有 Web 窗体控件(无论 HTML 控件、Web 控件、用户控件还是自定义控件)都必须嵌套在 HtmlForm 控件的格式良好的开始标记和结束标记之间。 如果没有正确结束标记,ASP.NET 将无法识别该元素。 该元素将被忽略或者将发生编译错误,具体取决于该元素的构成方式。
备注
不能在单个 Web 窗体页上包含多个 HtmlForm 控件。
默认情况下,HtmlForm 控件的 method 特性设置为 POST。 您可以根据需要自定义 method 特性,但如果将 method 特性设置为 GET 或 POST 以外的其他值,则可能破坏内置视图状态和 ASP.NET 提供的回发服务。
备注
action 特性始终设置为页本身的 URL。无法更改 action 特性;因此,只能回发到页本身。
备注
用于 form 元素的 name 特性在 XHTML 1.1 中已弃用。因此,该控件在 ASP.NET 4 中不会呈现 name 特性。
示例
下面的示例显示三个 HtmlButton 控件,其中每个按钮都有一个单独的 OnServerClick 事件处理程序。 这些事件中的每个事件都导致向服务器回发(在发生回发的所有方案中都需要 HtmlForm 控件)。 此例还说明在一个 Web 窗体页上只允许有一个 HtmlForm 控件(包括支持多个事件的窗体)。 如果包含多个 HtmlForm 控件,.NET Framework 将引发异常。
<%@ Page Language="VB" AutoEventWireup="True" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>HtmlForm Control</title>
<script runat="server">
Sub Button1_OnClick(Source As Object, e As EventArgs)
Span1.InnerHtml = "You clicked Button1"
End Sub
Sub Button2_OnClick(Source As Object, e As EventArgs)
Span2.InnerHtml = "You clicked Button2"
End Sub
Sub Button3_OnClick(Source As Object, e As EventArgs)
Span3.InnerHtml = "You clicked Button3"
End Sub
</script>
</head>
<body>
<h3>HtmlForm Sample</h3>
<form id="ServerForm" runat="server">
<button id="Button1" runat="server"
onserverclick="Button1_OnClick">
Button1
</button>
<span id="Span1" runat="server" />
<p />
<button id="Button2" runat="server"
onserverclick="Button2_OnClick">
Button2
</button>
<span id="Span2" runat="server" />
<p />
<button id="Button3" runat="server"
onserverclick="Button3_OnClick">
Button3
</button>
<span id="Span3" runat="server" />
</form>
</body>
</html>
<%@ Page Language="C#" AutoEventWireup="True" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>HtmlForm Control</title>
<script runat="server">
void Button1_OnClick(object Source, EventArgs e)
{
Span1.InnerHtml="You clicked Button1";
}
void Button2_OnClick(object Source, EventArgs e)
{
Span2.InnerHtml="You clicked Button2";
}
void Button3_OnClick(object Source, EventArgs e)
{
Span3.InnerHtml="You clicked Button3";
}
</script>
</head>
<body>
<h3>HtmlForm Sample</h3>
<form id="ServerForm" runat="server">
<button id="Button1" runat="server"
onserverclick="Button1_OnClick">
Button1
</button>
<span id="Span1" runat="server" />
<p />
<button id="Button2" runat="server"
onserverclick="Button2_OnClick">
Button2
</button>
<span id="Span2" runat="server" />
<p />
<button id="Button3" runat="server"
onserverclick="Button3_OnClick">
Button3
</button>
<span id="Span3" runat="server" />
</form>
</body>
</html>