TemplateField.ItemTemplate 屬性
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
取得或設定顯示資料繫結控制項中項目的樣板。
public:
virtual property System::Web::UI::ITemplate ^ ItemTemplate { System::Web::UI::ITemplate ^ get(); void set(System::Web::UI::ITemplate ^ value); };
[System.ComponentModel.Browsable(false)]
[System.Web.UI.PersistenceMode(System.Web.UI.PersistenceMode.InnerProperty)]
[System.Web.UI.TemplateContainer(typeof(System.Web.UI.IDataItemContainer), System.ComponentModel.BindingDirection.TwoWay)]
public virtual System.Web.UI.ITemplate ItemTemplate { get; set; }
[<System.ComponentModel.Browsable(false)>]
[<System.Web.UI.PersistenceMode(System.Web.UI.PersistenceMode.InnerProperty)>]
[<System.Web.UI.TemplateContainer(typeof(System.Web.UI.IDataItemContainer), System.ComponentModel.BindingDirection.TwoWay)>]
member this.ItemTemplate : System.Web.UI.ITemplate with get, set
Public Overridable Property ItemTemplate As ITemplate
屬性值
ITemplate 實作的物件,包含顯示 TemplateField 中項目的樣板。 預設值為 null
,表示這個屬性尚未設定。
- 屬性
範例
下列程式碼範例示範如何使用 ItemTemplate 屬性,為 控制項中的 GridView 欄位專案 TemplateField 建立自訂範本。 範本會在 控制項中 RadioButtonList 顯示域的值。
<%@ 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">
void TitleGridView_RowDataBound (Object sender, GridViewRowEventArgs e)
{
// Get the RadioButtonList control from the row.
RadioButtonList radio = (RadioButtonList)e.Row.FindControl("TypeList");
// Select the appropriate option button based on the value
// of the Type field for the row. In this example, the Type
// field values are stored in the column in the
// GridView control.
if (radio != null)
{
switch (e.Row.Cells[3].Text.Trim())
{
case "business":
radio.SelectedIndex = 0;
break;
case "mod_cook":
radio.SelectedIndex = 1;
break;
case "popular_comp":
radio.SelectedIndex = 2;
break;
case "psychology":
radio.SelectedIndex = 3;
break;
case "trad_cook":
radio.SelectedIndex = 4;
break;
default:
radio.SelectedIndex = 5;
break;
}
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>TemplateField ItemTemplate Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>TemplateField ItemTemplate Example</h3>
<!-- Populate the Columns collection declaratively. -->
<!-- Create a custom TemplateField column that uses -->
<!-- two Label controls to display an author's first and -->
<!-- last name in the same column. -->
<asp:gridview id="TitleGridView"
datasourceid="TitleSqlDataSource"
autogeneratecolumns="false"
onrowdatabound="TitleGridView_RowDataBound"
runat="server">
<columns>
<asp:boundfield datafield="title"
headertext="Title"/>
<asp:boundfield datafield="price"
dataformatstring="{0:c}"
headertext="Price"/>
<asp:templatefield headertext="Type">
<itemtemplate>
<asp:radiobuttonlist id="TypeList"
datasourceid="TypeSqlDataSource"
datatextfield="type"
enabled="false"
runat="server"/>
</itemtemplate>
</asp:templatefield>
<asp:boundfield datafield="type"/>
</columns>
</asp:gridview>
<!-- This example uses Microsoft SQL Server and connects -->
<!-- to the Pubs sample database. -->
<asp:sqldatasource id="TitleSqlDataSource"
selectcommand="SELECT [title], [price], [type] FROM [titles]"
connectionstring="server=localhost;database=pubs;integrated security=SSPI"
runat="server">
</asp:sqldatasource>
<asp:sqldatasource id="TypeSqlDataSource"
selectcommand="SELECT Distinct [type] FROM [titles]"
connectionstring="server=localhost;database=pubs;integrated security=SSPI"
runat="server">
</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">
Sub TitleGridView_RowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs)
' Get the RadioButtonList control from the row.
Dim radio As RadioButtonList = CType(e.Row.FindControl("TypeList"), RadioButtonList)
' Select the appropriate option button based on the value
' of the Type field for the row. In this example, the Type
' field values are stored in the column in the
' GridView control.
If Not radio Is Nothing Then
Select Case e.Row.Cells(3).Text.Trim()
Case "business"
radio.SelectedIndex = 0
Case "mod_cook"
radio.SelectedIndex = 1
Case "popular_comp"
radio.SelectedIndex = 2
Case "psychology"
radio.SelectedIndex = 3
Case "trad_cook"
radio.SelectedIndex = 4
Case Else
radio.SelectedIndex = 5
End Select
End If
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>TemplateField ItemTemplate Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>TemplateField ItemTemplate Example</h3>
<!-- Populate the Columns collection declaratively. -->
<!-- Create a custom TemplateField column that uses -->
<!-- two Label controls to display an author's first and -->
<!-- last name in the same column. -->
<asp:gridview id="TitleGridView"
datasourceid="TitleSqlDataSource"
autogeneratecolumns="false"
onrowdatabound="TitleGridView_RowDataBound"
runat="server">
<columns>
<asp:boundfield datafield="title"
headertext="Title"/>
<asp:boundfield datafield="price"
dataformatstring="{0:c}"
headertext="Price"/>
<asp:templatefield headertext="Type">
<itemtemplate>
<asp:radiobuttonlist id="TypeList"
datasourceid="TypeSqlDataSource"
datatextfield="type"
enabled="false"
runat="server"/>
</itemtemplate>
</asp:templatefield>
<asp:boundfield datafield="type"/>
</columns>
</asp:gridview>
<!-- This example uses Microsoft SQL Server and connects -->
<!-- to the Pubs sample database. -->
<asp:sqldatasource id="TitleSqlDataSource"
selectcommand="SELECT [title], [price], [type] FROM [titles]"
connectionstring="server=localhost;database=pubs;integrated security=SSPI"
runat="server">
</asp:sqldatasource>
<asp:sqldatasource id="TypeSqlDataSource"
selectcommand="SELECT Distinct [type] FROM [titles]"
connectionstring="server=localhost;database=pubs;integrated security=SSPI"
runat="server">
</asp:sqldatasource>
</form>
</body>
</html>
備註
ItemTemplate使用 屬性可指定物件中 TemplateField 專案所顯示的自訂內容。 藉由建立範本來定義內容,以指定專案的轉譯方式。
注意
您可以選擇性地將 AlternatingItemTemplate 屬性與 ItemTemplate 屬性結合,為資料繫結控制項中的每個其他專案建立不同的外觀。
若要指定範本,請先在專案的開頭和結束記號之間放置開頭和結尾 <ItemTemplate>
標記 <TemplateField>
。 接下來,在開頭和結尾 <ItemTemplate>
標記之間新增自訂內容。 內容可以像純文字或更複雜的 (在範本中內嵌其他控制項一樣簡單,例如) 。
若要以程式設計方式存取範本中定義的控制項,請先判斷資料繫結控制項中的哪個 TableCell 物件包含 控制項。 接下來,使用 Controls 物件的集合 TableCell 來存取控制項。 如果控制項已 ID 指定屬性,您也可以使用 FindControl 物件的 方法來 TableCell 尋找控制項。