TemplateField.ItemTemplate Свойство
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Получает или задает шаблон для отображения элемента в элементе управления, привязанному к данным.
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 свойство для создания пользовательского TemplateField шаблона для элементов поля в элементе GridView управления . Шаблон отображает значение поля в элементе 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 доступа к элементу управления . Для поиска элемента управления можно также использовать FindControl метод TableCell объекта , если в элементе ID управления указано свойство .