HtmlForm サーバー コントロール宣言構文
<form> HTML 要素に割り当てるサーバー側のコントロールを作成し、Web ページの要素のコンテナーを作成できるようにします。
<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 コントロールを使用して、<form> HTML 要素をプログラムで制御します。 ポストバック サービスを利用するには、すべての Web フォーム コントロール (HTML コントロール、Web コントロール、ユーザー コントロール、カスタム コントロール) を正しく記述された HtmlForm コントロールの開始タグと終了タグの間に入れ子にする必要があります。 タグが正しく閉じていない場合、ASP.NET は要素を認識しません。 要素の形式によって、要素が無視されるか、コンパイル エラーが発生するかのどちらかになります。
メモ |
---|
1 つの Web フォーム ページに複数の HtmlForm コントロールを含めることはできません。 |
既定では、HtmlForm コントロールの method 属性は POST に設定されます。 method 属性は必要に合わせてカスタマイズできますが、method 属性を GET または POST 以外の値に設定すると、ASP.NET に用意されている組み込みビュー ステートおよびポストバック サービスが破損する可能性があります。
メモ |
---|
action 属性は、常にそのページの URL に設定されます。action 属性は変更できません。そのため、使用できる機能はそのページへのポストバックだけです。 |
メモ |
---|
XHTML 1.1 では、form 要素の name 属性の使用は推奨されていません。そのため、ASP.NET 4 のこのコントロールでは name 属性がレンダリングされません。 |
使用例
ボタンごとに異なる OnServerClick ハンドラーを持つ 3 つの HtmlButton コントロールの例を示します。 これらの各イベントで、サーバーへのポストバックが発生します。ポストバックが発生する場合は、常に HtmlForm コントロールが必要です。 この例では、複数のイベントをサポートするフォームも含めて、Web フォーム ページで使用できる HtmlForm コントロールが 1 つだけであることも示しています。 複数の 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>