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>
      &nbsp;&nbsp;
      <span id="Span1" runat="server" />
      <p />
      <button id="Button2" runat="server"
              onserverclick="Button2_OnClick">
         Button2
      </button>
      &nbsp;&nbsp;
      <span id="Span2" runat="server" />
      <p />
      <button id="Button3" runat="server"
              onserverclick="Button3_OnClick">
         Button3
      </button>
      &nbsp;&nbsp;
      <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>
      &nbsp;&nbsp;
      <span id="Span1" runat="server" />
      <p />
      <button id="Button2" runat="server"
              onserverclick="Button2_OnClick">
         Button2
      </button>
      &nbsp;&nbsp;
      <span id="Span2" runat="server" />
      <p />
      <button id="Button3" runat="server"
              onserverclick="Button3_OnClick">
         Button3
      </button>
      &nbsp;&nbsp;
      <span id="Span3" runat="server" />
   </form>
</body>
</html>

请参见

参考

HtmlForm

其他资源

HTML 服务器控件