DynamicField 类

定义

表示一个数据字段,该字段显示在使用 ASP.NET 动态数据功能的数据绑定控件中。

public ref class DynamicField : System::Web::UI::WebControls::DataControlField, System::Web::DynamicData::IFieldFormattingOptions, System::Web::UI::IAttributeAccessor
public class DynamicField : System.Web.UI.WebControls.DataControlField, System.Web.DynamicData.IFieldFormattingOptions, System.Web.UI.IAttributeAccessor
type DynamicField = class
    inherit DataControlField
    interface IAttributeAccessor
    interface IFieldFormattingOptions
Public Class DynamicField
Inherits DataControlField
Implements IAttributeAccessor, IFieldFormattingOptions
继承
DynamicField
实现

示例

请参阅此功能的运行时代码示例: 运行

以下示例演示如何使用 DynamicField 控件中的 GridView 对象显示和编辑数据库表中的值。

<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">
  protected void Page_Init(object sender, EventArgs e)
  {
    DynamicDataManager1.RegisterControl(CustomersGridView);
  }
</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
  <title>DynamicField Sample</title>
  <link href="~/Site.css" rel="stylesheet" type="text/css" />
</head>
<body>
  <form id="form1" runat="server">
    <div>
    
      <h2><%= CustomersDataSource.TableName%> Table</h2>
      
      <asp:DynamicDataManager ID="DynamicDataManager1" runat="server"
        AutoLoadForeignKeys="true" />
        
      <asp:ValidationSummary ID="ValidationSummary1" runat="server" EnableClientScript="true" 
        HeaderText="List of validation errors"  />
      <asp:DynamicValidator runat="server" ID="DynamicValidator1"
        ControlToValidate="CustomersGridView" Display="None" />
        
      <asp:GridView ID="CustomersGridView" runat="server"
        AutoGenerateColumns="false"
        AutoGenerateEditButton="true"
        AutoGenerateDeleteButton="true"
        DataSourceID="CustomersDataSource"
        AllowPaging="true"
        AllowSorting="true"
        CssClass="gridview">
        <Columns>
          <asp:DynamicField DataField="CustomerID" />
          <asp:DynamicField DataField="FirstName" />
          <asp:DynamicField DataField="LastName" />
        </Columns>        
      </asp:GridView>

      <!-- This example uses Microsoft SQL Server and connects   -->
      <!-- to the AdventureWorksLT sample database.              -->
      <asp:LinqDataSource ID="CustomersDataSource" runat="server" 
        TableName="Customers"
        ContextTypeName="AdventureWorksLTDataContext"
        EnableUpdate="true"
        EnableDelete="true" >
      </asp:LinqDataSource>
      
    </div>
  </form>
</body>
</html>
<%@ Page Language="VB" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">
  
  Protected Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs)    
    DynamicDataManager1.RegisterControl(CustomersGridView)
  End Sub
  
</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
  <title>DynamicField Sample</title>
  <link href="~/Site.css" rel="stylesheet" type="text/css" />
</head>
<body>
  <form id="form1" runat="server">
    <div>
    
      <h2><%= CustomersDataSource.TableName%> Table</h2>
      
      <asp:DynamicDataManager ID="DynamicDataManager1" runat="server"
        AutoLoadForeignKeys="true" />
        
      <asp:ValidationSummary ID="ValidationSummary1" runat="server" EnableClientScript="true" 
        HeaderText="List of validation errors"  />
      <asp:DynamicValidator runat="server" ID="DynamicValidator1"
        ControlToValidate="CustomersGridView" Display="None" />
        
      <asp:GridView ID="CustomersGridView" runat="server"
        AutoGenerateColumns="false"
        AutoGenerateEditButton="true"
        AutoGenerateDeleteButton="true"
        DataSourceID="CustomersDataSource"
        AllowPaging="true"
        AllowSorting="true"
        CssClass="gridview">
        <Columns>
          <asp:DynamicField DataField="CustomerID" />
          <asp:DynamicField DataField="FirstName" />
          <asp:DynamicField DataField="LastName" />
        </Columns>        
      </asp:GridView>

      <!-- This example uses Microsoft SQL Server and connects   -->
      <!-- to the AdventureWorksLT sample database.              -->
      <asp:LinqDataSource ID="CustomersDataSource" runat="server" 
        TableName="Customers"
        ContextTypeName="AdventureWorksLTDataContext"
        EnableUpdate="true"
        EnableDelete="true" >
      </asp:LinqDataSource>
      
    </div>
  </form>
</body>
</html>

注解

本主题内容:

介绍

此类DynamicField由数据绑定控件(如GridViewDetailsView控件)使用,以显示在自定义页面中使用 ASP.NET 动态数据功能的字段值。

DynamicField 类提供类似于 BoundField 类的功能。 但是,由于 DynamicField 对象在动态数据应用程序中使用,因此可以利用以下动态数据功能:

  • 使用基于数据类型的字段模板自动呈现字段的正确控件。 可以全局修改整个应用程序的字段模板。

  • 基于数据库架构提供内置数据验证。 还可以通过自定义数据模型来添加验证类型。

  • 通过使用数据模型中的属性或使用 UIHint 属性自定义各个字段的数据呈现。

DynamicField 对象使用 DynamicControl 控件呈现每个字段。 若要指定要在对象中显示的 DynamicField 数据字段,请将 DataField 属性设置为字段名称。 可以通过设置 DataFormatString 属性将自定义格式字符串应用于字段值。 默认情况下,仅当数据绑定控件处于只读模式时,格式字符串才会应用于字段值。 若要将格式字符串应用于数据绑定控件处于编辑模式时显示的值,请将 ApplyFormatInEditMode 属性设置为 true。 如果字段值为 null,可以通过设置 NullDisplayText 属性来显示自定义标题。 该DynamicField对象还可以通过将属性true设置为 ConvertEmptyStringToNull null 值自动将空字符串 (“”) 字段值转换为 null 值。

声明性语法

<asp:DynamicField
    AccessibleHeaderText="string"
    ApplyFormatInEditMode="true|false"
    ControlStyle-BackColor="color name|#dddddd"
    ControlStyle-BorderColor="color name|#dddddd"
    ControlStyle-BorderStyle="NotSet|None|Dotted|Dashed|Solid|Double|Groove|
       Ridge|Inset|Outset"
    ControlStyle-BorderWidth="size"
    ControlStyle-CssClass="string"
    ControlStyle-Font-Bold="true|false"
    ControlStyle-Font-Italic="true|false"
    ControlStyle-Font-Names="string"
    ControlStyle-Font-Overline="true|false"
    ControlStyle-Font-Size="string|Smaller|Larger|XX-Small|X-Small|Small|Medium|
       Large|X-Large|XX-Large"
    ControlStyle-Font-Strikeout="true|false"
    ControlStyle-Font-Underline="true|false"
    ControlStyle-ForeColor="color name|#dddddd"
    ControlStyle-Height="size"
    ControlStyle-Width="size"
    ConvertEmptyStringToNull="true|false"
    DataField="string"
    DataFormatString="string"
    FooterStyle-BackColor="color name|#dddddd"
    FooterStyle-BorderColor="color name|#dddddd"
    FooterStyle-BorderStyle="NotSet|None|Dotted|Dashed|Solid|Double|Groove|
       Ridge|Inset|Outset"
    FooterStyle-BorderWidth="size"
    FooterStyle-CssClass="string"
    FooterStyle-Font-Bold="true|false"
    FooterStyle-Font-Italic="true|false"
    FooterStyle-Font-Names="string"
    FooterStyle-Font-Overline="true|false"
    FooterStyle-Font-Size="string|Smaller|Larger|XX-Small|X-Small|Small|Medium|
       Large|X-Large|XX-Large"
    FooterStyle-Font-Strikeout="true|false"
    FooterStyle-Font-Underline="true|false"
    FooterStyle-ForeColor="color name|#dddddd"
    FooterStyle-Height="size"
    FooterStyle-Width="size"
    FooterStyle-HorizontalAlign="Center|Justify|Left|NotSet|Right"
    FooterStyle-VerticalAlign="Bottom|Middle|NotSet|Top"
    FooterStyle-Wrap="true|false"
    HeaderImageUrl="uri"
    HeaderStyle-BackColor="color name|#dddddd"
    HeaderStyle-BorderColor="color name|#dddddd"
    HeaderStyle-BorderStyle="NotSet|None|Dotted|Dashed|Solid|Double|Groove|
       Ridge|Inset|Outset"
    HeaderStyle-BorderWidth="size"
    HeaderStyle-CssClass="string"
    HeaderStyle-Font-Bold="true|false"
    HeaderStyle-Font-Italic="true|false"
    HeaderStyle-Font-Names="string"
    HeaderStyle-Font-Overline="true|false"
    HeaderStyle-Font-Size="string|Smaller|Larger|XX-Small|X-Small|Small|Medium|
       Large|X-Large|XX-Large"
    HeaderStyle-Font-Strikeout="true|false"
    HeaderStyle-Font-Underline="true|false"
    HeaderStyle-ForeColor="color name|#dddddd"
    HeaderStyle-Height="size"
    HeaderStyle-Width="size"
    HeaderStyle-HorizontalAlign="Center|Justify|Left|NotSet|Right"
    HeaderStyle-VerticalAlign="Bottom|Middle|NotSet|Top"
    HeaderStyle-Wrap="true|false"
    HeaderText="string"
    InsertVisible="true|false"
    ItemStyle-BackColor="color name|#dddddd"
    ItemStyle-BorderColor="color name|#dddddd"
    ItemStyle-BorderStyle="NotSet|None|Dotted|Dashed|Solid|Double|Groove|
       Ridge|Inset|Outset"
    ItemStyle-BorderWidth="size"
    ItemStyle-CssClass="string"
    ItemStyle-Font-Bold="true|false"
    ItemStyle-Font-Italic="true|false"
    ItemStyle-Font-Names="string"
    ItemStyle-Font-Overline="true|false"
    ItemStyle-Font-Size="string|Smaller|Larger|XX-Small|X-Small|Small|Medium|
       Large|X-Large|XX-Large"
    ItemStyle-Font-Strikeout="true|false"
    ItemStyle-Font-Underline="true|false"
    ItemStyle-ForeColor="color name|#dddddd"
    ItemStyle-Height="size"
    ItemStyle-Width="size"
    ItemStyle-HorizontalAlign="Center|Justify|Left|NotSet|Right"
    ItemStyle-VerticalAlign="Bottom|Middle|NotSet|Top"
    ItemStyle-Wrap="true|false"
    NullDisplayText="string"
    ReadOnly="true|false"
    ShowHeader="true|false"
    SortExpression="string"
    UIHint="string"
    ValidationGroup="string"
    Visible="true|false"
    />
<asp:DynamicField />

构造函数

DynamicField()

初始化 DynamicField 类的新实例。

属性

AccessibleHeaderText

获取或设置某些控件中呈现为 AbbreviatedText 属性值的文本。

(继承自 DataControlField)
ApplyFormatInEditMode

获取或设置一个值,该值指示当数据字段处于编辑模式时,是否将 DataFormatString 属性指定的带格式的字符串应用于字段值。

Column

获取与此 MetaColumn 对象关联的 DynamicField 对象。

Control

获取对数据控件的引用,该控件与 DataControlField 对象关联。

(继承自 DataControlField)
ControlStyle

获取 DataControlField 对象所包含的任何 Web 服务器控件的样式。

(继承自 DataControlField)
ConvertEmptyStringToNull

获取或设置一个值,该值指示在数据源中更新数据字段时是否将空字符串值 ("") 自动转换为 null 值。

DataField

获取或设置要将 DynamicField 对象绑定到的数据字段的名称。

DataFormatString

获取或设置为数据字段的值指定显示格式的字符串。

DesignMode

获取一个值,该值指示数据控件字段当前是否在设计时环境中进行查看。

(继承自 DataControlField)
FooterStyle

获取或设置数据控件字段脚注的样式。

(继承自 DataControlField)
FooterText

获取或设置数据控件字段的脚注项中显示的文本。

(继承自 DataControlField)
HeaderImageUrl

获取或设置数据控件字段的标题项中显示的图像的 URL。

(继承自 DataControlField)
HeaderStyle

获取或设置数据控件字段标头的样式。

(继承自 DataControlField)
HeaderText

获取或设置在包含 DynamicField 对象的数据绑定控件的标题中显示的文本。

HtmlEncode

获取或设置一个值,该值指示在 DynamicField 对象中显示数据字段值之前,这些数据字段值是否经过 HTML 编码。

InsertVisible

获取一个值,该值指示 DataControlField 对象在其父级数据绑定控件处于插入模式时是否可见。

(继承自 DataControlField)
IsTrackingViewState

获取一个值,该值指示 DataControlField 对象是否保存对其视图状态的更改。

(继承自 DataControlField)
ItemStyle

获取由数据控件字段显示的任何基于文本的内容的样式。

(继承自 DataControlField)
NullDisplayText

获取或设置当字段值为 null 时,为数据字段显示的标题。

ReadOnly

获取动态字段的只读状态。

ShowHeader

获取或设置一个值,该值指示是否呈现数据控件字段的标题项。

(继承自 DataControlField)
SortExpression

获取或设置当数据字段用于排序数据源时所使用的排序表达式。

UIHint

获取或设置用于显示数据字段的字段模板。

ValidateRequestMode

获取或设置一个值,该值指定该控件是否验证客户端输入。

ValidateRequestMode

获取或设置一个值,该值指定该控件是否验证客户端输入。

(继承自 DataControlField)
ValidationGroup

获取与此 ValidationGroup 对象关联的 DynamicField 对象。

ViewState

获取状态信息的字典,这些信息使您可以在同一页的多个请求间保存和还原 DataControlField 对象的视图状态。

(继承自 DataControlField)
Visible

获取或设置指示是否呈现数据控件字段的值。

(继承自 DataControlField)

方法

CloneField()

创建当前 DataControlField 派生对象的副本。

(继承自 DataControlField)
ConfigureDynamicControl(DynamicControl)

提供一种机制,用于修改 DynamicControl 方法创建的 InitializeCell(DataControlFieldCell, DataControlCellType, DataControlRowState, Int32) 对象。

CopyProperties(DataControlField)

将当前 DynamicField 对象的属性复制到指定的 DataControlField 对象。

CreateDynamicControl()

提供一种机制,使从 DynamicField 派生的类可重写创建 DynamicControl 对象的方式。

CreateField()

创建并返回 DynamicField 类的新实例。

Equals(Object)

确定指定对象是否等于当前对象。

(继承自 Object)
ExtractValuesFromCell(IOrderedDictionary, DataControlFieldCell, DataControlRowState, Boolean)

从当前表格单元格中提取数据字段的值,然后将该值添加到指定词典中。

GetAttribute(String)

检索指定的特性值。

GetHashCode()

作为默认哈希函数。

(继承自 Object)
GetType()

获取当前实例的 Type

(继承自 Object)
Initialize(Boolean, Control)

为数据控件字段执行基础实例初始化。

(继承自 DataControlField)
InitializeCell(DataControlFieldCell, DataControlCellType, DataControlRowState, Int32)

向指定单元格中添加文本或控件。

LoadViewState(Object)

将数据源视图还原为保存过的前一视图状态。

(继承自 DataControlField)
MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)
OnFieldChanged()

引发 FieldChanged 事件。

(继承自 DataControlField)
SaveViewState()

保存在页回发到服务器后对 DataControlField 视图状态所做的更改。

(继承自 DataControlField)
SetAttribute(String, String)

设置与 DynamicField 对象关联的特性。

ToString()

返回表示此 DataControlField 对象的字符串。

(继承自 DataControlField)
TrackViewState()

使 DataControlField 对象跟踪对其视图状态所做的更改,以便这些更改可以存储在控件的 ViewState 属性中并且能够在同一页的不同请求间得以保持。

(继承自 DataControlField)
ValidateSupportsCallback()

当在派生类中重写时,发出信号表示字段所包含的控件支持回调。

(继承自 DataControlField)

显式接口实现

IDataSourceViewSchemaAccessor.DataSourceViewSchema

获取或设置与此 DataControlField 对象关联的架构。

(继承自 DataControlField)
IStateManager.IsTrackingViewState

获取一个值,该值指示 DataControlField 对象是否保存对其视图状态的更改。

(继承自 DataControlField)
IStateManager.LoadViewState(Object)

将数据控件字段还原为保存过的前一视图状态。

(继承自 DataControlField)
IStateManager.SaveViewState()

保存在页回发到服务器后对 DataControlField 视图状态所做的更改。

(继承自 DataControlField)
IStateManager.TrackViewState()

使 DataControlField 对象跟踪对其视图状态所做的更改,以便这些更改可以存储在控件的 ViewState 属性中并且能够在同一页的不同请求间得以保持。

(继承自 DataControlField)

扩展方法

ConvertEditedValue(IFieldFormattingOptions, String)

返回用户为正在验证的控件提供的值。

FormatEditValue(IFieldFormattingOptions, Object)

使用指定格式设置选项设置指定字段值的格式。

FormatValue(IFieldFormattingOptions, Object)

使用指定格式设置选项设置指定字段值的格式。

适用于

另请参阅