ASP.NET - サーバーコントロール
- 前のページ WebForms ページ
- 次のページ WebForms イベント
サーバーコントロールはサーバーが理解できるタグです。
Classic ASPの限界
以下に示すコードは、前節からコピーされたものです:
<html> <body style="background-color:#e5eecc; text-align:center;"> <h2>Hello CodeW3C.com!</h2> <p><%Response.Write(now())%></p> </body> </html>
上記のコードは、Classic ASPの限界を反映しています:コードブロックは出力が必要な場所に配置する必要があります。
Classic ASPを使用すると、実行可能なコードとHTML自体を分離することはできません。これにより、ページの読みやすさとメンテナンスが難しくなります。
ASP.NET - サーバーコントロール
サーバーコントロールを通じて、ASP.NETは上記で説明した「スパゲッティコード」の問題を解決しました。
サーバーコントロールはサーバーが理解できるタグです。
サーバーコントロールには3種類あります:
- HTMLサーバーコントロール - 伝統的なHTMLタグ
- Webサーバーコントロール - 新しいASP.NETタグ
- Validationサーバーコントロール - 入力検証用
ASP.NET - HTMLサーバーコントロール
HTMLサーバーコントロールはサーバーが理解できるHTMLタグです。
ASP.NETでのHTML要素はテキストとして処理されます。これらの要素をプログラム可能にするには、これらのHTML要素に runat="server" 属性この属性は、この要素がサーバーコントロールであることを示します。また、サーバーコントロールを識別するために id 属性を追加する必要があります。この id は、実行時のサーバーコントロールを操作するために使用できます。
注釈:すべての HTML サーバーコントロールは、runat="server" 属性を持つ <form> タグ内に配置する必要があります。runat="server" 属性は、フォームがサーバーで処理されることを示し、そのフォームに含まれるコントロールがサーバースクリプトでアクセス可能であることを示します。
以下の例では、.aspx ファイルで HtmlAnchor サーバーコントロールを宣言しました。それから、イベントハンドラでその HtmlAnchor コントロールの HRef 属性を操作しました。Page_Load イベントは、ASP.NETが理解できる多くのイベントのうちの1つです:
注釈:イベントハンドラ(event handler)は、特定のイベントに対してコードを実行するサブルーチンです。
<script runat="server"> Sub Page_Load link1.HRef="http://www.codew3c.com" End Sub </script> <html> <body> <form runat="server"> <a id="link1" runat="server">CodeW3C.com を訪問!</a> </form> </body> </html>
ヒント:実行可能なコード自体は、HTMLの外に移されました。
ASP.NET - Web サーバーコントロール
Web サーバーコントロールは、サーバーが理解できる特別な ASP.NET タグです。
HTML サーバーコントロールと同様に、Web サーバーコントロールもサーバー上に作成されます。これらもまた、有効にするために runat="server" 属性が必要ですが、Web サーバーコントロールは既存の HTML エレメントにマッピングする必要はありません。代わりに、より複雑なエレメントを表現します。
Web サーバーコントロールの作成方法は以下の通りです:
<asp:control_name id="some_id" runat="server" />
以下の例では、.aspx ファイルで Button サーバーコントロールを宣言しました。それから、クリックイベントに対してイベントハンドラを生成し、ボタンのテキストを変更するようにしました:
<script runat="server"> Sub submit(Source As Object, e As EventArgs) button1.Text="あなたがクリックした!" End Sub </script> <html> <body> <form runat="server"> <asp:Button id="button1" Text="クリックして!" runat="server" OnClick="submit"/> </form> </body> </html>
ASP.NET - Validation サーバーコントロール
ユーザー入力の検証に使用される Validation サーバーコントロールです。ユーザーの入力が検証に通らなかった場合、エラーメッセージをユーザーに表示します。
各 validation コントロールは特定の验证タイプを実行します(例えば、特定の値や範囲の値の验证など)。
デフォルトで、Button、ImageButton、またはLinkButtonがクリックされたときにページの验证が実行されます。CausesValidation プロパティを false に設定することで、特定のボタンクントロールがクリックされたときの验证を阻止できます。
Validation サーバーコントロールの作成方法は以下の通りです:
<asp:control_name id="some_id" runat="server" />
以下の例では、.aspx ファイルで TextBox コントロール、Button コントロール、および RangeValidator コントロールを宣言しています。验证が失敗すると、テキスト「値は1から100まででなければなりません!」が RangeValidator コントロールに表示されます:
<html> <body> <form runat="server"> <p>1から100までの数字を入力してください: <asp:TextBox id="tbox1" runat="server" /> <br /><br /> <asp:Button Text="提出" runat="server" /> </p> <p> <asp:RangeValidator ControlToValidate="tbox1" MinimumValue="1" MaximumValue="100" Type="Integer" Text="値は1から100まででなければなりません!" runat="server" /> </p> </form> </body> </html>
- 前のページ WebForms ページ
- 次のページ WebForms イベント