ASP.NET 动态数据默认字段模板
更新:2007 年 11 月
字段模板是将数据控件字段映射为数据模型中的数据类型的 ASP.NET 用户控件。这些控件是从 FieldTemplateUserControl 类派生的,通过该类能够访问数据字段、数据库列以及元数据。动态数据使用字段模板自动基于数据库架构和数据类型显示数据,并且使用户能够使用最少的代码或者根本不使用代码就可在数据模型中编辑和插入数据。在创建动态数据 Web 应用程序时,动态数据提供默认字段模板。
默认字段模板
ASP.NET 动态数据确定数据模型中数据的数据类型,并使用相应的默认或自定义字段模板在数据控件中呈现这些数据。呈现的字段模板取决于数据类型(UIHint 或定义的DataTypeAttribute)以及数据控件是处于显示模式、编辑模式还是插入模式。在 Visual Studio 2008 中创建动态数据项目时,将在 DynamicData/FieldTemplates 目录中创建默认字段模板。
下表介绍 ASP.NET 动态数据项目中的默认字段模板。
默认字段模板 |
说明 |
---|---|
Boolean.ascx |
|
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 控件。此外,还呈现 CompareValidator 控件,该控件验证是否可以将输入转换为 Decimal 数据类型。如果数据库中的字段不能为 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,或者将所需的属性添加到数据模型,则 Text_Edit.ascx 还呈现 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,或者将所需的属性添加到数据模型,则 TextArea_Edit.ascx 还呈现 RequiredFieldValidator 控件。如果将 RegularExpression 属性添加到数据模型,则数据字段还呈现 RegularExpressionValidator 控件。TextArea_Edit.ascx 提供 System.Web.DynamicData.DynamicValidator 控件,该控件处理数据模型中引发的所有异常。 |
自定义默认模板
可以自定义默认字段模板来更改其显示、编辑和插入行为。所做的修改将影响整个网站。例如,通过修改呈现字段模板的文本块的 BackColor 和 ForeColor 属性,可以更改 DateTime_Edit.ascx 的背景色和前景色。可以通过在 .css 文件中定义 BackColor 和 ForeColor 属性来完成此修改。有关更多信息,请参见如何:自定义 ASP.NET 动态数据默认的字段模板。