DetailsView.Fields 屬性
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
會取得一組 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 列欄位,首先將屬性設 AutoGenerateRows 為 false。 接著,在控制項的DetailsView開閉標籤之間加入開<Fields>閉標籤。 最後,列出你想在開場和結束 <Fields> 標籤之間包含的列欄位。 列欄位依照集合中Fields列欄位出現的順序顯示在控制項DetailsView中。
雖然你可以用程式方式在集合中新增列欄位 Fields ,但比較簡單的做法是在控制項 DetailsView 中宣告式列出列欄位,然後利用 Visible 每個列欄位的特性來顯示或隱藏列欄位。
若 Visible 列欄位屬性設為 false,該列不會在控制項中 DetailsView 顯示,且該列的資料不會往返至用戶端。 如果你想取得某一列無法看見的資料來進行往返,請將欄位名稱加入 DataKeyNames 屬性。