次の方法で共有


ASP.NET Dynamic Data の既定のフィールド テンプレート

更新 : 2007 年 11 月

フィールド テンプレートは、データ コントロールのフィールドとデータ モデルのデータ型とを対応付ける ASP.NET ユーザー コントロールです。これらのコントロールは、FieldTemplateUserControl クラス (データ フィールド、データベース列、およびメタデータへのアクセスを可能にするクラス) から派生されます。Dynamic Data では、フィールド テンプレートを使用することで、データベース スキーマとデータ型に基づいてデータを自動的に表示します。また、フィールド テンプレートにより、データ モデル内のデータの編集と挿入を最小限のコードで実現できるようになっています。コードを記述する必要がない場合もあります。Dynamic Data Web アプリケーションの作成時には、Dynamic Data の既定のテンプレートを利用できます。

既定のフィールド テンプレート

ASP.NET Dynamic Data は、データ モデルに含まれるデータの型を判断し、既定またはカスタムの適切なフィールド テンプレートを使用してデータ コントロール内のデータをレンダリングします。レンダリングされるフィールド テンプレートは、データ型、UIHint または定義されている DataTypeAttribute、およびデータ コントロールのモード (表示、編集、挿入) によって変わります。Visual Studio 2008 で Dynamic Data プロジェクトを作成すると、DynamicData/FieldTemplates ディレクトリに既定のフィールド テンプレートが作成されます。

次の表は、ASP.NET Dynamic Data プロジェクトの既定のフィールド テンプレートについて説明したものです。

既定のフィールド テンプレート

説明

Boolean.ascx

Boolean データ型を表示します。CheckBox コントロールをレンダリングします。CheckBox コントロールは無効化され、変更できません。

Boolean_Edit.ascx

ユーザーによる Boolean 値の編集を可能にします。CheckBox コントロールをレンダリングします。

Children.ascx

一対多リレーションシップを持つフィールドを表示し、ユーザーをリレーションシップ ページにリダイレクトします。HyperLink コントロールをレンダリングします。

DateTime.ascx

DateTime データ型をテキストとして表示します。リテラルとしてレンダリングされます。

DateTime_Edit.ascx

TextBox コントロールをレンダリングします。データベース内のフィールドを null にすることができない場合、または必須の属性がデータ モデルに追加されている場合は、RequiredFieldValidator コントロールもレンダリングされます。DateTime_Edit.ascx フィールド テンプレートは、データ モデルからスローされたあらゆる例外を処理する System.Web.DynamicData.DynamicValidator コントロールを備えています。これは、Regex クラスをサポートします。

Decimal_Edit.ascx

TextBox コントロールをレンダリングします。さらに、入力を Decimal データ型に変換できるかどうかを検証する CompareValidator コントロールもレンダリングします。データベース内のフィールドを null にすることができない場合、または必須の属性がデータ モデルに追加されている場合は、RequiredFieldValidator コントロールもレンダリングされます。フィールドに範囲属性が存在する場合は、RangeValidator コントロールもレンダリングされます。Decimal_Edit.ascx フィールド テンプレートは、データ モデルからスローされたあらゆる例外を処理する System.Web.DynamicData.DynamicValidator コントロールを備えています。このフィールド テンプレートは、Regex クラスをサポートします。

ForeignKey.ascx

多対一リレーションシップを持つフィールドを表示します。ユーザーをリレーションシップ ページにリダイレクトする HyperLink コントロールをレンダリングします。

ForeignKey_Edit.ascx

多対一リレーションシップを持つフィールドの編集に使用されます。データ モデル内の外部キーをユーザーが選択できるようにする DropDownList コントロールをレンダリングします。

Integer_Edit.ascx

TextBox コントロール、および、テキスト ボックスに入力されたデータを整数に変換できるかどうかを検証する CompareValidator をレンダリングします。データベース内のフィールドを nullにすることができない場合、または必須の属性がデータ モデルに追加されている場合は、RequiredFieldValidator コントロールもレンダリングされます。モデル内のフィールドに範囲属性が存在する場合は、RangeValidator コントロールもレンダリングされます。Integer_Edit.ascx は、データ モデルからスローされたあらゆる例外を処理する System.Web.DynamicData.DynamicValidator コントロールを備えています。Regex クラスをサポートします。

Text.ascx

String、Decimal、Double、および Int32 (byte、short、long などの他の整数型を含む) を表示します。リテラルとしてレンダリングされます。

Text_Edit.ascx

TextBox コントロールをレンダリングします。テキスト ボックスの TextMode プロパティは、SingleLine に設定されます。データベース内のフィールドを null にすることができない場合、または必須の属性がデータ モデルに追加されている場合は、RequiredFieldValidator コントロールもレンダリングされます。データベース内のフィールドに長さが関連付けられている場合は、テキスト ボックス コントロールの MaxLength プロパティが強制的に適用されます。データ モデルに RegularExpression 属性が存在する場合は、既定のフィールド テンプレートによって RegularExpressionValidator コントロールもレンダリングされます。Text_Edit.ascx は、データ モデルからスローされたあらゆる例外を処理する System.Web.DynamicData.DynamicValidator コントロールを備えています。

Multiline_Edit.ascx

テキスト ブロックとしてマークされたデータベース フィールドに使用されます。たとえば、SQL Server では、Multiline_Edit.ascx は TEXT、NTEXT、VARCHAR(MAX)、および NVARCHAR(MAX) の各データ型に対応付けられます。

TextBox コントロールをレンダリングします。テキスト ボックスの TextMode プロパティは、MultiLine に設定されます。データベース内のフィールドを null にすることができない場合、または必須の属性がデータ モデルに追加されている場合は、RequiredFieldValidator コントロールもレンダリングされます。データ モデルに RegularExpression 属性が追加されている場合は、RegularExpressionValidator コントロールもレンダリングされます。Multiline_Edit.ascx は、データ モデルからスローされたあらゆる例外を処理する System.Web.DynamicData.DynamicValidator コントロールを備えています。

既定のテンプレートのカスタマイズ

既定のフィールド テンプレートをカスタマイズして、表示、編集、および挿入の各動作を変更できます。この変更は Web サイト全体に反映されます。たとえば、DateTime_Edit.ascx の背景色と前景色を変更するには、そのフィールド テンプレートでレンダリングされるテキスト ボックスの BackColor プロパティと ForeColor プロパティを変更します。この変更は、.css ファイルで BackColor プロパティと ForeColor プロパティを定義することで実現できます。詳細については、「方法 : ASP.NET Dynamic Data の既定のフィールド テンプレートをカスタマイズする」を参照してください。

参照

処理手順

方法 : データ モデルのデータ フィールドの外観と動作をカスタマイズする

方法 : データ モデルでデータ フィールドの表示をカスタマイズする

概念

ASP.NET Dynamic Data のフィールド テンプレートの概要