第2回 ASP.NETの基礎 サーバ・コントロール編連載 プログラミングASP.NET ―ASP.NETによるWebアプリケーション実践開発講座― (2/3 ページ)

» 2002年05月29日 00時00分 公開
[田口景介]

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.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。