ASP.NET 2.0 FormView コントロールは、バックエンド データ ソースからの個々のレコードを簡単に表示するという点で、DetailsView コントロールに似ています。この記事では、このコントロールの構文とアプリケーションについて説明します。
カスタマイズ
どちらのコントロールも一度に 1 つのレコードを表示しますが、DetailsView と FormView の主な違いは、FormView ではユーザー定義のテンプレートが使用され、DetailsView では行フィールドが使用されることです。 FormView コントロールはデータ レイアウトを事前定義しません。代わりに、レコードの個々のフィールドを表示するコントロールを含むテンプレートを構築します。テンプレートには、フォームの作成に使用されるフォーマット、コントロール、バインド式が含まれています。
データ レコードの表示は、編集、表示、新しいレコードの追加の 3 つの形式で制御できます。さらに、ヘッダー要素とフッター要素を含めてフォーマットすることもできます。 FormView コントロールのさまざまな部分で、利用可能な ASP.NET コントロールを利用することもできます。
FormView コントロール インスタンスを宣言して使用する
ための構文は
、DetailsView コントロール インスタンスを宣言して使用する場合と非常に似ています。これらの主な違いは、使用するデフォルト設定がないため、FormView コントロールにデータを表示するための形式とテンプレートを含める必要があることです。リスト A は、FormView 要素タグを開くための構文の一部を示しています。
多くの属性がタイトルや枠線などの HTML テーブル要素に対応していることに気づいたかもしれません。これは、ASP.NET が HTML テーブルを使用して FormView コントロールをレンダリングすることを示しています。
FormView コントロールのプロパティのより包括的なリストは、Microsoft Web サイトからオンラインで表示できます。以下の表に、注意すべき重要なプロパティをいくつか示します。
·AllowPaging: ユーザーが指定されたデータ ソース内のレコードをページングできるかどうかを示すブール値。 true に設定すると、表示されるレコードの下部にデフォルトのページ番号システム (1 からレコード数まで) が表示されます。ページネーション リンクは、さまざまなページネーション プロパティを通じてカスタマイズできます。
·DataKeyNames: データ ソースのキー フィールド。
·DataSourceID: FormView コントロールのデータ ソース要素 ID を移植するために使用されます。 SQL Server を使用している場合、これは SqlDataSource 要素に割り当てられた ID に対応します。
·DefaultMode: コントロールのデフォルトの動作を指定できます。つまり、ユーザーがアクセスしたときに最初に表示される方法です。可能な値には、ReadOnly、Insert、Edit が含まれます。
·EmptyDataText: 空のデータ値が見つかったときに表示されるテキスト。
FormView コントロールを宣言するときは、そのコンテンツもそれに応じて書式設定する必要があります。そのデータはテンプレートを通じて表示されます。 FormView コントロールは主に 5 つのテンプレートを使用します。
·ItemTemplate: ユーザーがデータを表示するときの表示を制御します。
·EditItemTemplate: ユーザーがレコードを編集するときのデータ要素の形式と表示を決定します。このテンプレート内では、TextBox 要素などの他のコントロールを使用して、ユーザーが値を編集できるようにします。
·InsertItemTemplate: レコードの編集と同様に、このテンプレートは、ユーザーがバックエンド データ ソースに新しいレコードを追加できるようにするフィールドの表示を制御します。新しい値を入力するときは、データの要件に応じて、ユーザーがテキストを自由に入力できるようにするか、特定の値に制限する必要があります。
·FooterTemplate: FormView コントロール テーブルのフッター部分に表示されるコンテンツ (存在する場合) を決定します。
·HeaderTemplate: FormView コントロール テーブルのヘッダー部分に表示されるコンテンツ (存在する場合) を決定します。
これらのテンプレートを使用すると、FormView コントロールにバインドされたデータの表示と動作を制御できます。たとえば、リスト B の ASP.NET Web フォームは標準の Northwind データベースに接続し、ユーザーが名、姓、入社日、自宅の電話番号フィールドを介して新しい従業員レコードを表示、編集、削除、追加できるようにします。
TextField コントロールを使用して、編集または追加中のデータと、確認のためにのみ表示される値を表示します。 ItemTemplate は CSS を使用してテーブルをフォーマットしますが、InsertTemplate はフォーマットに HTML スタイルを使用します。どちらの方法を使用するかは開発者によって決定されます。
注: ASP.NET は、レコードの追加、編集、削除、保存にボタン コントロールを使用します。
Button コントロールでは、New の CommandName 値によってレコードが挿入モードに変換され、InsertItemTemplate テンプレートが読み込まれます。これにより、ユーザーは新しいレコード値を入力できるようになります。 Edit CommandName 値を使用して、ItemTemplate に新しいボタンを追加し、FormView コントロールを編集モードにすることができます。
CommnadName 値が Delete のボタンを ItemTemplate テンプレートに追加して、ユーザーがデータ ソースから現在のレコードを削除できるようにすることができます。 Update の CommnadName はデータを保存し、Cancel は操作を終了します。
開発者が ASP.NET 2.0 の新しい機能の多くを制御するのが
驚くほど簡単です
。FormView は、DetailsView の単純な機能を拡張し、必要に応じて表示コンテンツの書式設定を簡単に制御できるようにします。この新しいコントロールにより、ソリューションを提供するための別のオプションが提供されます。