This documentation is archived and is not being maintained.

TemplateField.ItemTemplate Property

Note: This property is new in the .NET Framework version 2.0.

Gets or sets the template for displaying an item in a data-bound control.

Namespace: System.Web.UI.WebControls
Assembly: System.Web (in system.web.dll)

[TemplateContainerAttribute(typeof(IDataItemContainer), BindingDirection.TwoWay)] 
public virtual ITemplate ItemTemplate { get; set; }
/** @property */
public ITemplate get_ItemTemplate ()

/** @property */
public void set_ItemTemplate (ITemplate value)

public function get ItemTemplate () : ITemplate

public function set ItemTemplate (value : ITemplate)

Property Value

A System.Web.UI.ITemplate-implemented object that contains the template for displaying an item in a TemplateField. The default is a null reference (Nothing in Visual Basic), which indicates that this property is not set.

Use the ItemTemplate property to specify the custom content displayed for the items in a TemplateField object. Define the content by creating a template that specifies how the items are rendered.


You can optionally define the AlternatingItemTemplate property in combination with the ItemTemplate property to create a different appearance for every other item in the data-bound control.

To specify a template, first place opening and closing <ItemTemplate> tags between the opening and closing tags of the <TemplateField> element. Next, add the custom content between the opening and closing <ItemTemplate> tags. The content can be as simple as plain text or more complex (embedding other controls in the template, for example).

To programmatically access a control defined in a template, first determine which TableCell object in the data-bound control contains the control. Next, use the Controls collection of the TableCell object to access the control. You can also use the FindControl method of the TableCell object to find the control, if the control has an ID property specified.

The following code example demonstrates how to use the ItemTemplate property to create a custom template for the items of a TemplateField field in a GridView control. The template displays the field's value in a RadioButtonList control.

<%@ Page language="C#" %>

<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 hidden column in the 
    // GridView control.
    if (radio != null)
      switch (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; 

          radio.SelectedIndex = 5; 

    <form 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" 
          <asp:boundfield datafield="title"
          <asp:boundfield datafield="price"
          <asp:templatefield headertext="Type">
              <asp:radiobuttonlist id="TypeList"
          <asp:boundfield datafield="type"
      <!-- 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"
      <asp:sqldatasource id="TypeSqlDataSource"  
        selectcommand="SELECT Distinct [type] FROM [titles]"
        connectionstring="server=localhost;database=pubs;integrated security=SSPI"

Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see System Requirements.

.NET Framework

Supported in: 2.0