共用方式為


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 A 包含控制項中所有明確宣告的列欄位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 以超連結形式顯示資料來源欄位的值。 這種列欄位類型允許你將第二個欄位綁定到超連結的網址。
ImageField 在控制面板中顯示一張圖片 DetailsView
TemplateField 根據指定範本,顯示控制項中某一列 DetailsView 的使用者自訂內容。 這種列欄位類型允許你建立自訂的列欄位。

要明確宣告控制項的 DetailsView 列欄位,首先將屬性設 AutoGenerateRowsfalse。 接著,在控制項的DetailsView開閉標籤之間加入開<Fields>閉標籤。 最後,列出你想在開場和結束 <Fields> 標籤之間包含的列欄位。 列欄位依照集合中Fields列欄位出現的順序顯示在控制項DetailsView中。

雖然你可以用程式方式在集合中新增列欄位 Fields ,但比較簡單的做法是在控制項 DetailsView 中宣告式列出列欄位,然後利用 Visible 每個列欄位的特性來顯示或隱藏列欄位。

Visible 列欄位屬性設為 false,該列不會在控制項中 DetailsView 顯示,且該列的資料不會往返至用戶端。 如果你想取得某一列無法看見的資料來進行往返,請將欄位名稱加入 DataKeyNames 屬性。

適用於

另請參閱