更新 : 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 の既定のフィールド テンプレートをカスタマイズする」を参照してください。
参照
処理手順
方法 : データ モデルのデータ フィールドの外観と動作をカスタマイズする
方法 : データ モデルでデータ フィールドの表示をカスタマイズする