DetailsView.Fields 属性

定义

获取 DataControlField 对象的集合,这些对象表示 DetailsView 控件中显式声明的行字段。

public:
 virtual property System::Web::UI::WebControls::DataControlFieldCollection ^ Fields { System::Web::UI::WebControls::DataControlFieldCollection ^ get(); };
[System.Web.UI.PersistenceMode(System.Web.UI.PersistenceMode.InnerProperty)]
public virtual System.Web.UI.WebControls.DataControlFieldCollection Fields { get; }
[<System.Web.UI.PersistenceMode(System.Web.UI.PersistenceMode.InnerProperty)>]
member this.Fields : System.Web.UI.WebControls.DataControlFieldCollection
Public Overridable ReadOnly Property Fields As DataControlFieldCollection

属性值

一个 DataControlFieldCollection,包含 DetailsView 控件中所有显式声明的行字段。

属性

示例

下面的代码示例演示如何以声明方式将行字段添加到 Fields 控件的 DetailsView 集合。


<%@ 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">
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>DetailsView Fields Example</title>
</head>
<body>
    <form id="Form1" runat="server">
        
      <h3>DetailsView Fields Example</h3>
                
        <asp:detailsview id="CustomerDetailView"
          datasourceid="DetailsViewSource"
          datakeynames="CustomerID"
          AutoGenerateRows="false"
          allowpaging="true"
          runat="server">
               
        <Fields>
         <asp:BoundField 
           DataField="CompanyName" 
           HeaderText="Company Name"/>
         <asp:BoundField 
           DataField="City" 
           HeaderText="City"/>
        </Fields>
                    
        </asp:detailsview>
        
        <!-- This example uses Microsoft SQL Server and connects  -->
        <!-- to the Northwind sample database. Use an ASP.NET     -->
        <!-- expression to retrieve the connection string value   -->
        <!-- from the web.config file.                            -->
        <asp:SqlDataSource ID="DetailsViewSource" runat="server" 
          ConnectionString=
            "<%$ ConnectionStrings:NorthWindConnectionString%>"
          InsertCommand="INSERT INTO [Customers]([CustomerID],
            [CompanyName], [Address], [City], [PostalCode], [Country]) 
            VALUES (@CustomerID, @CompanyName, @Address, @City, 
            @PostalCode, @Country)"

          SelectCommand="Select [CustomerID], [CompanyName], 
            [Address], [City], [PostalCode], [Country] From 
            [Customers]">
        </asp:SqlDataSource>
    </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">
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>DetailsView Fields Example</title>
</head>
<body>
    <form id="Form1" runat="server">
        
      <h3>DetailsView Fields Example</h3>
                
        <asp:detailsview id="CustomerDetailView"
          datasourceid="DetailsViewSource"
          datakeynames="CustomerID"
          AutoGenerateRows="false"
          allowpaging="true"
          runat="server">
               
        <Fields>
         <asp:BoundField 
           DataField="CompanyName" 
           HeaderText="Company Name"/>
         <asp:BoundField 
           DataField="City" 
           HeaderText="City"/>
        </Fields>
                    
        </asp:detailsview>
        
        <!-- This example uses Microsoft SQL Server and connects  -->
        <!-- to the Northwind sample database. Use an ASP.NET     -->
        <!-- expression to retrieve the connection string value   -->
        <!-- from the web.config file.                            -->
        <asp:SqlDataSource ID="DetailsViewSource" runat="server" 
          ConnectionString=
            "<%$ ConnectionStrings:NorthWindConnectionString%>"
          InsertCommand="INSERT INTO [Customers]([CustomerID],
            [CompanyName], [Address], [City], [PostalCode], [Country]) 
            VALUES (@CustomerID, @CompanyName, @Address, @City, 
            @PostalCode, @Country)"

          SelectCommand="Select [CustomerID], [CompanyName], 
            [Address], [City], [PostalCode], [Country] From 
            [Customers]">
        </asp:SqlDataSource>
    </form>
  </body>
</html>

注解

显式声明控件的行字段 DetailsView 时,这些行字段存储在 Fields 属性 (集合) 中。 该 Fields 集合还允许以编程方式管理显式声明行的集合。

注意

显式声明的行字段可与自动生成的行字段结合使用。 使用这两个字段时,首先呈现显式声明的行字段,然后呈现自动生成的行字段。 自动生成的行字段不会添加到集合中 Fields

不同的行字段类型确定控件中行的行为。 下表显示了可在集合中使用的 Fields 不同行字段类型。

行字段类型 说明
BoundField 将数据源中字段的值显示为文本。
ButtonField 在 控件中 DetailsView 显示命令按钮。 这允许你显示具有自定义按钮控件的行,例如“添加或删除”按钮。
CheckBoxField 在 控件中 DetailsView 显示一个复选框。 此行字段类型通常用于显示具有布尔值的字段。
CommandField 显示用于在控件中执行编辑、插入或删除操作的 DetailsView 内置命令按钮。
HyperLinkField 将数据源中字段的值显示为超链接。 此行字段类型允许您将第二个字段绑定到超链接的 URL。
ImageField 在 控件中 DetailsView 显示图像。
TemplateField 根据指定的模板显示控件中 DetailsView 某一行的用户定义内容。 此行字段类型允许您创建自定义行字段。

若要显式声明控件的行字段 DetailsView ,请先将 AutoGenerateRows 属性设置为 false。 接下来,在控件的开始标记和结束 <Fields> 标记之间添加开始标记和结束标记 DetailsView 。 最后,列出要在开始标记和结束 <Fields> 标记之间包括的行字段。 行字段按照行字段在集合中的 DetailsView 显示顺序显示在 控件中 Fields

尽管可以通过编程方式将行字段添加到 Fields 集合中,但在控件中 DetailsView 以声明方式列出行字段,然后使用 Visible 每个行字段的 属性显示或隐藏行字段会更容易。

Visible如果行字段的 属性设置为 false,则行不会显示在 控件中DetailsView,并且行的数据不会往返于客户端。 如果希望不可见的行的数据进行往返,请将字段名称添加到 DataKeyNames 属性。

适用于

另请参阅