DetailsView Web サーバー コントロールの概要
更新 : 2007 年 11 月
DetailsView コントロールには、データ ソースから単一のレコードが表示されます。ここでは、各データ行はレコード内のフィールドを表します。このコントロールは、多くの場合マスター/詳細シナリオの GridView コントロールと組み合わせて使用します。
このトピックの内容は次のとおりです。
背景
コード例
クラス リファレンス
背景
DetailsView コントロールを使用すると、対応するデータ ソースのレコードを 1 つずつ表示、編集、挿入、または削除できます。既定では、DetailsView コントロールは、レコードの各フィールドを個別の行に表示します。DetailsView コントロールは、通常、新しいレコードの更新と挿入に使用され、マスター/詳細シナリオで使用されることがよくあります。このシナリオではマスター コントロールの選択されたレコードによって DetailsView コントロールに表示するレコードが決定されます。DetailsView コントロールは、そのデータ ソースが複数のレコードを公開している場合でも一度にデータ レコードを 1 つだけ表示します。
DetailsView コントロールは、データ ソース コントロールの機能に依存してレコードの更新、挿入、削除などのタスクを実行します。DetailsView コントロールは並べ替えをサポートしません。
DetailsView コントロールは、ICollection インターフェイスをサポートするオブジェクトによってデータが表現されている場合、または基になるデータ ソースがページングをサポートしている場合、対応するデータ ソースのデータを自動的にページングできます。DetailsView コントロールには、データ レコード間を移動するためのユーザー インターフェイス (UI) が用意されています。ページング動作を有効にするには、AllowPaging プロパティに true を設定します。
対応するデータ ソースから特定のレコードを選択するには、そのレコードにページングします。DetailsView コントロールで表示されるレコードは、現在選択されているレコードです。
DetailsView コントロールを使用したデータ バインディング
DetailsView コントロールで使用できるデータ バインディングの方法としては、次のオプションがあります。
DataSourceID プロパティを使用したデータ バインディング。これによって、DetailsView コントロールをデータ ソース コントロールにバインドできます。DetailsView コントロールはデータ ソース コントロールの機能を利用して、更新とページングのための組み込み機能を提供できるため、この方法をお勧めします。
DataSource プロパティを使用したデータ バインディング。これによって、ADO.NET データセットやデータ リーダーを含むさまざまなオブジェクトにデータをバインドできます。この方法では、更新やページングなどの追加機能のためのコードを記述する必要があります。
DataSourceID プロパティを使用してデータ ソースにバインドする場合、DetailsView コントロールは双方向のデータ バインディングをサポートします。データ表示に加えて、このコントロールでは、バインド データの挿入、更新、および削除の各処理に対する自動的なサポートを有効にすることもできます。
DetailsView コントロール データの操作
DetailsView コントロールは、データ ソース コントロールにバインドされます。データ ソース コントロールは、データ ストアに接続し、選択されたデータを返すタスクを処理します。DetailsView コントロールをデータにバインドするのは簡単で、DataSourceID プロパティを宣言的に設定するだけです。また、コードによってデータ ソースにバインドすることもできます。
編集を有効にするには、AutoGenerateEditButton プロパティに true を設定します。これで、DetailsView コントロールには、データ フィールドに加えて [編集] ボタンが表示されます。[編集] ボタンをクリックすると、DetailsView コントロールが編集モードに入ります。編集モードに入ると、DetailsView コントロールの CurrentMode プロパティが ReadOnly から Edit に変更され、コントロールの各フィールドに、テキスト ボックスやチェック ボックスなどの編集 UI が表示されます。編集 UI は、スタイル、DataControlField オブジェクト、およびテンプレートを使用してカスタマイズすることもできます。
メモ : |
---|
DetailsView コントロールで編集をサポートするには、バインドされているデータ ソースがデータの更新操作をサポートしている必要があります。 |
[削除] ボタンや [挿入] ボタンを表示するように DetailsView コントロールを設定すると、対応するデータ レコードをデータ ソースから削除したり、新しいデータ レコードを挿入したりできるようになります。AutoGenerateEditButton プロパティと同様に、DetailsView コントロールの AutoGenerateInsertButton プロパティに true を設定すると、[新規作成] ボタンが表示されます。[新規作成] ボタンをクリックすると、DetailsView コントロールの CurrentMode プロパティが Insert に変更されます。DetailsView コントロールでは、バインドされた各フィールドごとに適切な UI 入力コントロールが表示されます。ただし、バインドされたフィールドの InsertVisible プロパティに false が設定されている場合を除きます。
DetailsView コントロールのユーザー インターフェイスのカスタマイズ
DetailsView コントロールは Fields コレクション プロパティをサポートします。このコレクション プロパティには、BoundField 型、CommandField 型、または HyperLinkField 型の DataControlField オブジェクトが格納されます。これは、GridView コントロールの Columns コレクションと機能的によく似ていますが、DetailsView コントロールの場合は、各フィールドが列ではなく行として表示されます。
GridView コントロールと同様に、DetailsView コントロールの場合も、HeaderStyle、RowStyle、AlternatingRowStyle、CommandRowStyle、FooterStyle、PagerStyle、EmptyDataRowStyle などのスタイル プロパティを使用して UI をカスタマイズできます。
DetailsView コントロールにはテンプレートを使用した追加のカスタマイズ機能があり、、特定の要素の表示をより高度に制御できます。また、DetailsView コントロールでは、EmptyDataTemplate、HeaderTemplate、FooterTemplate、および PagerTemplate の各プロパティを独自に定義できます。さらに、TemplateField オブジェクトを Fields コレクションに追加して、個別フィールドのテンプレートを作成することもできます。
DetailsView コントロールは、独自のコードを実行するために処理できるいくつかのイベントを公開しています。イベントは、関連付けられているデータ ソース コントロールの挿入、更新、および削除操作の前後で発生します。また、ItemCreated イベントと ItemCommand イベントのハンドラを記述することもできます。詳細については、「DetailsView Web サーバー コントロール イベント」を参照してください。
メモ : |
---|
DetailsView コントロールのイベント モデルは、GridView コントロールのイベント モデルに似ています。ただし、DetailsView コントロールは選択イベントをサポートしていません。これは現在のレコードが常に選択されている項目であるためです。 |
ページのトップへ
コード例
チュートリアル : DetailsView Web サーバー コントロールによる Web ページのデータの編集と挿入
チュートリアル : LinqDataSource コントロールと DetailsView コントロールを使用したデータの取得、更新、挿入、および削除
DetailsView Web サーバー コントロールでのページング
DetailsView Web サーバー コントロールを使用したデータの変更
DetailsView Web サーバー コントロールにおけるカスタム行の作成
ページのトップへ
クラス リファレンス
DetailsView コントロールに関連する主要なクラスの一覧を次の表に示します。
メンバ |
説明 |
---|---|
コントロールのメイン クラスです。 |
ページのトップへ
参照
概念
DetailsView Web サーバー コントロール イベント
ASP.NET Web サーバー コントロール テンプレート