ASP.NET Web サーバー コントロールの概要
更新 : 2007 年 11 月
ASP.NET Web ページを作成するときには、次の種類のコントロールを使用できます。
HTML サーバー コントロール プログラミングできるようにサーバーに公開される HTML 要素です。HTML サーバー コントロールは、表示する HTML 要素に厳密に対応するオブジェクト モデルを公開します。
Web サーバー コントロール HTML サーバー コントロールよりも多くの組み込み機能を持つコントロールです。Web サーバー コントロールには、ボタンやテキスト ボックスなどのフォーム コントロールだけでなく、カレンダー、メニュー、ツリー ビュー コントロールなどの特別な用途のコントロールも含まれます。Web サーバー コントロールは、そのオブジェクト モデルが必ずしも HTML 構文を反映しないという点で、HTML サーバー コントロールよりも抽象的です。
検証コントロール TextBox コントロールなどの入力コントロールにユーザーが入力した内容を検証するためのロジックが組み込まれているコントロールです。検証コントロールを使用すると、必須フィールドの入力をチェックしたり、特定の値や文字パターンに一致するかどうかをテストしたり、値が特定の範囲内にあるかどうかを検証したりできます。詳細については、「検証 ASP.NET コントロール」を参照してください。
ユーザー コントロール ASP.NET Web ページとしてユーザーが作成するコントロールです。ASP.NET ユーザー コントロールは、他の ASP.NET Web ページに埋め込むことができます。これにより、ツール バーなどの再利用できる要素を簡単に作成できます。詳細については、「ASP.NET ユーザー コントロール」を参照してください。
メモ : モバイル デバイス用の出力も作成できます。同じ ASP.NET ページ フレームワークを使用してモバイル デバイス用の出力を作成できますが、ASP.NET Web ページの代わりにモバイル ASP.NET Web ページを作成し、モバイル デバイス専用にデザインされたコントロールを使用します。詳細については、「ASP.NET モバイル Web ページの作成」を参照してください。
同じページ上ですべての種類のコントロールを使用できます。以降のセクションでは、ASP.NET サーバー コントロールに関する詳細を説明します。
メモ : |
---|
サーバー コントロールを適切に動作させるために、クライアント スクリプトが必要な場合もあります。ブラウザでのスクリプトの実行がユーザーによって無効化されていると、コントロールが正しく動作しない場合があります。詳細については、「ASP.NET Web サーバー コントロールとブラウザの機能」を参照してください。 |
HTML サーバー コントロール
HTML サーバー コントロールは、サーバー コード内でプログラミングできる属性を含む HTML 要素 (または XHTML など、サポートされる他のマークアップ内の要素) です。既定では、ASP.NET Web ページ上の HTML 要素はサーバーからは使用できません。これらの要素は、非透過テキストとして処理され、ブラウザに渡されます。ただし、HTML 要素を HTML サーバー コントロールに変換することにより、サーバー上でプログラミングできる要素として HTML 要素を公開できます。
HTML サーバー コントロールのオブジェクト モデルは、対応する要素のオブジェクト モデルと厳密に対応しています。たとえば、HTML 属性は、HTML サーバー コントロールのプロパティとして公開されます。
ページ上のすべての HTML 要素は、属性 runat="server" を追加することにより、HTML サーバー コントロールに変換できます。解析中、ASP.NET ページ フレームワークは、runat="server" 属性を含むすべての要素のインスタンスを生成します。コントロールをコード内でメンバとして参照する場合は、コントロールに id 属性も割り当てる必要があります。
ASP.NET ページ フレームワークでは、form 要素、input 要素 (テキスト ボックス、チェック ボックス、送信ボタン)、select 要素など、ページ上で動的に使用される共通の HTML 要素に対して定義済みの HTML サーバー コントロールが用意されています。これらの定義済み HTML サーバー コントロールは、汎用コントロールの基本的なプロパティを共有するほか、各コントロール固有のプロパティのセットと固有のイベントを提供します。
HTML サーバー コントロールには、次の機能があります。
一般的なオブジェクト指向の手法を使用してサーバー上でプログラミングできるオブジェクト モデル。各サーバー コントロールは、コントロールのマークアップ属性をサーバー コードでプログラムによって操作するためのプロパティを公開します。
クライアント ベースのフォームで記述する場合と同じようにイベント ハンドラを記述できるイベントのセット。ただし、イベントはサーバー コードで処理されます。
クライアント スクリプトでイベントを処理する機能。
コントロールの状態を自動的に保守する機能。ページがサーバーへのラウンド トリップを実行すると、ユーザーが HTML サーバー コントロールに入力した値は自動的に保持され、ブラウザに返されます。
ASP.NET 検証コントロールとの対話機能。この機能により、ユーザーが適切な情報をコントロールに入力したことを検証できます。
コントロールの 1 つ以上のプロパティに対するデータ連結。
カスケード スタイル シートをサポートするブラウザに ASP.NET Web ページを表示する場合のスタイルのサポート。
カスタム属性のパススルー。HTML サーバー コントロールには、必要な任意の属性を追加できます。ASP.NET ページ フレームワークでは、機能に特別な変更を加えなくても、それらの属性を表示できます。これにより、コントロールにブラウザ固有の属性を追加できます。
HTML 要素を HTML サーバー コントロールに変換する方法の詳細については、「方法 : ASP.NET 構文を使用して HTML サーバー コントロールを Web ページに追加する」を参照してください。
Web サーバー コントロール
Web サーバー コントロールは、HTML サーバー コントロールとは異なる面に重点を置いてデザインされた、もう 1 つの種類のコントロール セットです。Web サーバー コントロールは、必ずしも HTML サーバー コントロールと一対一には対応しません。その代わり、Web サーバー コントロールは、抽象的なコントロールとして定義されています。つまり、コントロールによって実際に表示されるマークアップが、プログラミングするモデルと大きく異なる場合があります。たとえば、RadioButtonList Web サーバー コントロールは、テーブル内に表示したり、他のマークアップと共にインライン テキストとして表示したりできます。
Web サーバー コントロールには、ボタンやテキスト ボックスなどの従来型のフォーム コントロールのほか、テーブルなどの複雑なコントロールも含まれます。また、データのグリッド表示、日付の選択、メニューの表示など、よく使用されるフォームの機能を提供するコントロールもあります。
Web サーバー コントロールは、前に説明した HTML サーバー コントロールのすべての機能 (要素への一対一対応を除く) に加えて、次の追加機能を提供します。
タイプ セーフなプログラミングのための豊富な機能を持つオブジェクト モデル。
ブラウザの自動検出。コントロールは、ブラウザ機能を検出し、適切なマークアップを表示できます。
Templates を使用して一部のコントロールに対して独自のレイアウトを定義できる機能。
一部のコントロールに対して、コントロールのイベントをサーバーにすぐにポストするか、イベントをキャッシュしてページの送信時に発生させるかを指定する機能。
サイト全体のコントロールに対して一貫した外観を定義できるテーマのサポート。詳細については、「ASP.NET のテーマとスキン」を参照してください。
入れ子になったコントロール (テーブル内のボタンなど) からコンテナ コントロールにイベントを渡す機能。
コントロールは、次の構文を使用します。
<asp:button attributes runat="server" id="Button1" />
この場合の属性は、HTML 要素の属性ではありません。これは、Web コントロールのプロパティです。
ASP.NET Web ページが実行されると、Web サーバー コントロールは適切なマークアップを使用してページに表示されます。このマークアップは、多くの場合、ブラウザの種類だけでなく、コントロールに対して行った設定にも依存します。たとえば、TextBox コントロールは、そのプロパティに応じて input タグまたは textarea タグとして表示されます。
詳細な使用方法の説明と参照ドキュメントがコントロールごとに用意されています。