Web フォーム ページからユーザー コントロールへの変換
ある Web フォーム ページが開発済みで、アプリケーションを通じてその機能にアクセスする場合は、ファイルを少し修正するだけで、そのページをユーザー コントロールに変更できます。<html>
、<body>
、<form>
の各要素はユーザー コントロールに含まれないので、コントロールを含む Web フォーム ページにこれらの要素を含める必要があります。
**警告 **分離コード クラス内でユーザー コントロールを開発している場合は、Page クラスではなく、UserControl クラスを拡張する必要があります。詳細については、「分離コード ファイル内でのユーザー コントロールの開発」を参照してください。
Web フォーム ページをユーザー コントロールに変換するには
ページから
<html>
、<body>
、<form>
の各要素をすべて削除します。次の例は、この変換を示しています。最初の Web フォーム ページ
<html> <script language="VB" runat=server> Sub EnterBtn_Click(Sender as Object, E as EventArgs) Label1.Text = "Hi " & Name.Text & " welcome to ASP.NET!" End Sub </script> <body> <h3>Web Forms Page</h3> <form> Enter Name: <asp:textbox id="Name" runat=server/> <asp:button Text="Enter" OnClick="EnterBtn_Click" runat=server/> <br><br> <asp:label id="Label1" runat=server/> </form> </body> </html> [C#] <html> <script language="C#" runat=server> void EnterBtn_Click(Object Sender, EventArgs E){ Label1.Text = "Hi " + Name.Text + " welcome to ASP.NET!"; } </script> <body> <h3>Web Forms Page</h3> <form> Enter Name: <asp:textbox id="Name" runat=server/> <asp:button Text="Enter" OnClick="EnterBtn_Click" runat=server/> <br><br> <asp:label id="Label1" runat=server/> </form> </body> </html>
変換後のユーザー コントロール
<h3> <u>User Control</u> </h3> <script language="VB" runat=server> Sub EnterBtn_Click(Sender as Object, E as EventArgs) Label1.Text = "Hi " & Name.Text & " welcome to ASP.NET!" End Sub </script> Enter Name: <asp:textbox id="Name" runat=server/> <asp:button Text="Enter" OnClick="EnterBtn_Click" runat=server/> <br><br> <asp:label id="Label1" runat=server/> [C#] <h3>User Control</h3> <script language="C#" runat=server> void EnterBtn_Click(Object Sender, EventArgs E){ Label1.Text = "Hi " + Name.Text + " welcome to ASP.NET!"; } </script> Enter Name: <asp:textbox id="Name" runat=server/> <asp:button Text="Enter" OnClick="EnterBtn_Click" runat=server/> <br><br> <asp:label id="Label1" runat=server/>
Web フォーム ページ内に @ Page ディレクティブがある場合は、それを @ Control ディレクティブに変更します。
メモ パーサー エラーを回避するために、ページをユーザー コントロールに変換するときに、@ Page ディレクティブによってサポートされる属性のうち、@ Control ディレクティブによってサポートされない属性があればそれらを削除します。詳細については、「ディレクティブ構文」を参照してください。
className 属性を @ Control ディレクティブの中に含めます。これにより、このユーザー コントロールをページまたはほかのサーバー コントロールにプログラムによって追加するときに、ユーザー コントロールの型を厳密に指定できます。
コントロールに用途を示すファイル名を割り当て、ファイル名拡張子を .aspx から .ascx に変更します。
参照
Web フォーム ユーザー コントロール | Web フォーム ページへのユーザー コントロールの取り込み | ユーザー コントロールの作成 | Windows フォーム ページのサーバー イベント処理|ユーザー コントロール イベントの処理