第2回 ASP.NETの基礎 サーバ・コントロール編:連載 プログラミングASP.NET ―ASP.NETによるWebアプリケーション実践開発講座― (2/3 ページ)
ASP.NETアーキテクチャの中核となるサーバ・コントロール。ASP.NETでは、さまざまなHTMLコントロールをサーバ側で制御可能となった。
HTMLサーバ・コントロールとWebサーバ・コントロール
HTMLサーバ・コントロールとWebサーバ・コントロールには、それぞれ次の表2.1と表2.2に示す種類があるが、ここではひとまず、リスト2.2に登場したHtmlFormコントロールとWebサーバ・コントロールについてのみ簡単に解説する。各コントロールの詳細については、次回以降で解説していく。
HTMLサーバ・コントロール | 対応するHTMLエレメント |
---|---|
HtmlAnchor | <a> |
HtmlButton | <button> |
HtmlForm | <form> |
HtmlGeneric | <span>、<div>、<body>、<font> |
HtmlImage | <img> |
HtmlInputButton | <input type=button>、<input type=submit>、<input type=reset> |
HtmlInputCheckBox | <input type=checkbox> |
HtmlInputFile | <input type=file> |
HtmlInputHidden | <input type=hidden> |
HtmlInputImage | <input type=image> |
HtmlInputRadioButton | <input type=radio> |
HtmlInputText | <input type=text> |
HtmlSelect | <select> |
HtmlTable | <table> |
HtmlTableCell | <td>、<th> |
HtmlTableRow | <tr> |
HtmlTextArea | <textarea> |
表2.1 HTMLサーバ・コントロール |
Webサーバ・コントロール | 機能 |
---|---|
asp:AdRotator | 広告画像を順次表示する |
asp:Button | ボタンを表示する。submitボタンとcommandボタンが利用可能 |
asp:Calendar | カレンダを表示する |
asp:CheckBox | チェック・ボックスを表示する |
asp:CheckBoxList | チェック・ボックスのグループを表示する |
asp:DataGrid | データ連結を利用してテーブルを作成する。テンプレートを利用して、デザインのカスタマイズが可能 |
asp:DataList | データ連結を利用してリストを作成する。テンプレートを利用して、デザインのカスタマイズが可能 |
asp:DropDownList | ドロップダウン・リストを表示する |
asp:HyperLink | 指定したURLへのハイパー・リンクを表示する |
asp:Image | 画像を表示する |
asp:ImageButton | クリッカブル・マップを持つ画像を表示する |
asp:Label | テキストを表示する |
asp:LinkButton | ハイパー・リンクのような外見を持つボタンを表示する |
asp:ListBox | リスト・ボックスを表示する |
asp:Literal | スタイルを適用できないテキストを表示する |
asp:Panel | コントロールをグループ化する(divエレメントに対応) |
asp:PlaceHolder | コントロール自体はタグを出力せず、動的にコントロールを追加するポイントとして参照される |
asp:RadioButton | ラジオ・ボタンを表示する |
asp:RadioButtonList | ラジオ・ボタンのグループを表示する |
asp:Repeater | asp:DataGridやasp:DataListからレイアウトやスタイル機能を取り除いたプリミティブなデータ連結コントロール |
asp:Table | テーブルを表示する |
asp:TableCell | テーブルのセルを表示する |
asp:TableRow | テーブルの行を表示する |
asp:TextBox | テキスト・ボックスを表示する |
asp:Xml | XMLドキュメント、またはXSLTによって変換されたドキュメントを表示する |
表2.2 Webサーバ・コントロール |
HtmlFormコントロール
ASP.NETページのデザインに欠かせないHTMLサーバ・コントロールが、HtmlFormコントロール(「runat="server"」を指定したformエレメント)である。多くのHTMLサーバ・コントロールとWebサーバ・コントロールは、HtmlFormコントロールの内部にしか記述できないからだ。
基本的に、HtmlAnchorコントロール(HTMLのaエレメントに対応)やasp:Imageコントロール(HTMLのimgエレメントに対応)のように、情報を表示するだけのサーバ・コントロールにはHtmlFormコントロールは不要だが、HtmlInputButtonコントロールやasp:TextBoxコントロールのように、ユーザーからの入力を受け付けるサーバ・コントロールはHtmlFromコントロールの内部にしか記述できない。
ところで、すでに見たようにHtmlFormコントロールは、formエレメントに対応するコントロールだが、大きな違いが2つある。
まず、同一のASP.NETページには、複数のHtmlFromコントロールを含めることはできない。
また、フォームに入力した情報の送信先URL、すなわちaction属性に指定するURLには、自ページへのURLを指定しなければならない。つまり、フォームのポストバック(後述)に対する処理は、すべて同一ページ内に記述しなければならないということになる。HtmlFormコントロールのaction属性を省略した場合は、自動的に自ページへのURLが設定されるため、HtmlFormコントロールにaction属性を明示する意味はほとんどない。
また、method属性を省略したときのデフォルト値がFormエレメントとは異なり、HtmlFormコントロールでは「POST」である。明示的に「GET」を指定することも可能だが、後述する「ビュー・ステート」サービスのために、フォームに含まれるコントロールによっては大量のデータが自動的に送信されることになるため、特別な理由がない限りはデフォルトのままPOSTメソッドを利用した方がよい。
従ってほとんどの場合、HtmlFormコントロールは、
<form runat="server">
とだけ記述することになる。
Webサーバ・コントロール
HTMLエレメントとほぼ1対1に対応しているHTMLサーバ・コントロールに対して、ダイアログ・ボックスで使われるコントロールに近いイメージで設計されたのが、Webサーバ・コントロールである。
リスト2.2で使われているasp:ListBoxコントロールは、HTMLのselectエレメントに対応し、リスト・ボックスを表示するWebサーバ・コントロールである。Webサーバ・コントロールには、このほかにもドロップダウン・ボックスを表示するasp:DropDownListコントロールが定義されており、これもやはりselectエレメントに置換される。HTMLのエレメントには、inputエレメントのように属性の指定によってさまざまな機能を持つものがあるが、Webサーバ・コントロールでは、機能別に分かりやすく再構成されている。
逆に、asp:DataGridコントロールのように高機能なWebサーバ・コントロールは、1つのHTMLエレメントでは表現できない機能を備えているため、複数のHTMLエレメントへと置換される。
また、終了タグを持たないWebサーバ・コントロールでは、XMLと同じく「<タグ名 属性/>」のように、タグ名の末尾にスラッシュを明示する必要がある(終了タグで閉じることも可能)。リスト2.2では、asp:TextBoxコントロール(テキスト・ボックスを表示する)とasp:Buttonコントロール(デフォルトではSubmitボタンを表示する)がこのシンタックスで記述されている。ASP.NETページは「HTMLページ+アルファ」として設計されているが、Webサーバ・コントロールについては、HTMLのようなあいまいさは許されていない。
Copyright© Digital Advantage Corp. All Rights Reserved.