通过


DetailsView.Fields 属性

定义

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

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

属性值

包含控件中所有显式声明的行字段的 DetailsView ADataControlFieldCollection

属性

示例

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


<%@ 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。 接下来,在控件的DetailsView开始标记和结束标记之间添加开始标记和结束<Fields>标记。 最后,列出要在开始标记和结束 <Fields> 标记之间包括的行字段。 行字段以 DetailsView 行字段出现在集合中的顺序显示在控件中 Fields

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

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

适用于

另请参阅