テキスト エディタまたは HTML エディタを使用して、ユーザー コントロールを宣言して作成できます。ユーザー コントロールの宣言構文は、Web フォーム ページの作成時に使用される構文とよく似ています。主な違いは、ユーザー コントロールのコンテンツは、@ Page ディレクティブの代わりに @ Control ディレクティブを使用し、コンテンツの周囲には <html>
、<body>
、および <form>
の各要素が含まれないことです。
Web フォーム ページの詳細とその作成方法については、「Web フォーム ページの概要」を参照してください。Web フォーム ページでユーザー コンロトールを宣言する方法については、「Web フォーム ページへのユーザー コントロールの取り込み」を参照してください。
ユーザー コントロールは、テキスト ファイル程度の簡単なものにしたり、他の ASP.NET サーバー コントロールを含んだりできます。ユーザー コントロールとそれをホストするページとの間で情報を共有する場合、そのユーザー コントロールに対してプロパティを作成できます。
アプリケーションの複数のページ上に含めることができる単純なログオン フォームを作成する手順の概要を次に示します。
ユーザー コントロールを作成するには
新しいファイルを作成し、.ascx という拡張子で名前を付けます。
たとえば、
Logonform.ascx
という名前のユーザー コントロールを作成したとします。ページ最上部に @ Control ディレクティブを作成して、そのコントロールに使用するプログラミング言語を指定します (存在する場合)。
次の例は、Visual Basic .NET をプログラミング言語として使用するページに @ Control ディレクティブを指定する例を示しています。
<%@ Control Language="VB" %>
メモ Visual Studio .NET を使って Web アプリケーションを作成する場合は、アプリケーションのすべてのページとユーザー コントロールで同じプログラミング言語を使用する必要があります。
ユーザー コントロールに表示するユーザー インターフェイス要素 (コントロール) を作成します。
ユーザー コントロールとそれをホストするページとの間で情報を共有できるようにする場合は、コントロールにプロパティを作成します。
ユーザーが名前を入力するためのテキスト ボックスと、その名前が表示されるラベルが指定された、完全なユーザー コントロールの例を次に示します。このユーザー コントロールでは、名前をホスト ページで設定できるように、Name プロパティも公開されます。
<%@ Control Language="VB" %> <script runat="server"> Public Property Name As String Get Return labelOutput.Text End Get Set textName.Text = Server.HtmlEncode(value) labelOutput.Text = Server.HtmlEncode(value) End Set End Property Public Sub buttonDisplayName_Click(sender As Object, e As EventArgs) labelOutput.Text = textName.Text End Sub </script> <table> <tbody> <tr> <td> <b>Enter your name:</b></td> </tr> <tr> <td> <asp:TextBox id="textName" runat="server"> </asp:TextBox> </td> </tr> <tr> <td> <asp:button id="buttonDisplayName" onclick="buttonDisplayName_Click" runat="server" text="Submit"> </asp:button> </td> </tr> <tr> <td><b>Hello, <asp:Label id="labelOutput" runat="server"> </asp:Label>.</b> </td> </tr> </tbody> </table> [C#] <%@ Control Language="C#" %> <script runat="server"> public String Name { get { return labelOutput.Text; } set { textName.Text = Server.HtmlEncode(value); labelOutput.Text = Server.HtmlEncode(value); } } void buttonDisplayName_Click(object sender, EventArgs e) { labelOutput.Text = textName.Text; } </script> <table> <tbody> <tr> <td> <b>Enter your name:</b></td> </tr> <tr> <td> <asp:TextBox id="textName" runat="server"> </asp:TextBox> </td> </tr> <tr> <td> <asp:button id="buttonDisplayName" onclick="buttonDisplayName_Click" runat="server" text="Submit"> </asp:button> </td> </tr> <tr> <td><b>Hello, <asp:Label id="labelOutput" runat="server"> </asp:Label>.</b> </td> </tr> </tbody> </table>
ASP.NET Web ページにユーザー コントロールを追加する方法の詳細については、「Web フォーム ページへのユーザー コントロールの取り込み」を参照してください。
参照
Web フォーム ユーザー コントロール | Web フォーム ページへのユーザー コントロールの取り込み | Windows フォーム ページのサーバー イベント処理