Export (0) Print
Expand All

TemplateField Class

Represents a field that displays custom content in a data-bound control.

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

public class TemplateField : DataControlField
public class TemplateField extends DataControlField
public class TemplateField extends DataControlField
Not applicable.

The TemplateField class is used by data-bound controls (such as GridView and DetailsView) to display custom content for each record displayed. When you need to display content in a data-bound control that is not provided by one of the predefined data control fields (such as BoundField), use the TemplateField class to create your custom user interface (UI). The TemplateField object is displayed differently depending on the data-bound control in which it is used. For example, the GridView control displays a TemplateField object as a column, and the DetailsView control displays it as a row.

You can define a custom template for the different parts of the TemplateField object using the templates listed in the following table.

Template

Description

AlternatingItemTemplate

Specifies the content to display for the alternating items in a TemplateField object.

EditItemTemplate

Specifies the content to display for an item in edit mode in a TemplateField object.

FooterTemplate

Specifies the content to display for the footer section of a TemplateField object.

HeaderTemplate

Specifies the content to display for the header section of a TemplateField object.

InsertItemTemplate

Specifies the content to display for an item in insert mode in a TemplateField object. This template is supported only by the DetailsView control.

ItemTemplate

Specifies the content to display for the items in a TemplateField object.

You can hide a TemplateField object in a data-bound control by setting the Visible property to false.

As an alternative to defining a custom HeaderTemplate or FooterTemplate template, you can customize the header and footer sections of a TemplateField object by setting other properties of the TemplateField object. To display a caption in the header or footer sections, set the HeaderText or the FooterText property, respectively. Instead of displaying text in the header section, you can display an image by setting the HeaderImageUrl property. The header section can be hidden in the TemplateField object by setting the ShowHeader property to false.

NoteNote:

Some data-bound controls (such as the GridView control) can show or hide only the entire header section of the control. These data-bound controls do not support the ShowHeader property for an individual bound field. To show or hide the entire header section of a data-bound control, use the control's ShowHeader property (if available).

You also can customize the appearance of the TemplateField object (font color, background color, and so on) by setting the style properties for the different parts of the field. The following table lists the different style properties.

Style property

Description

ControlStyle

The style settings for the child Web server controls of the TemplateField object.

FooterStyle

The style settings for the footer section of the TemplateField object.

HeaderStyle

The style settings for the header section of the TemplateField object.

ItemStyle

The style settings for the data items in the TemplateField object.

The following code example demonstrates how to create a custom TemplateField object that displays two fields in the same cell. The first name and last name fields are combined into the same TemplateField object.


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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>TemplateField Example</title>
</head>
<body>
    <form id="form1" runat="server">
        
      <h3>TemplateField 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="AuthorsGridView" 
        datasourceid="AuthorsSqlDataSource" 
        autogeneratecolumns="False"
        runat="server">
                
        <columns>
                
          <asp:templatefield headertext="Author Name">
            <itemtemplate>
              <asp:label id="FirstNameLabel"
                Text= '<%# Eval("au_fname") %>'
                runat="server"/> 
              <asp:label id="LastNameLabel"
                Text= '<%# Eval("au_lname") %>'
                runat="server"/>
            </itemtemplate>
          </asp:templatefield>
                
        </columns>
                
      </asp:gridview>
            
      <!-- This example uses Microsoft SQL Server and connects -->
      <!-- to the Pubs sample database.                        -->
      <asp:sqldatasource id="AuthorsSqlDataSource"  
        selectcommand="SELECT [au_lname], [au_fname], [address], [city], [state], [zip], [contract] FROM [authors]"
        connectionstring="server=localhost;database=pubs;integrated security=SSPI"
        runat="server">
      </asp:sqldatasource>
            
    </form>
  </body>
</html>


System.Object
   System.Web.UI.WebControls.DataControlField
    System.Web.UI.WebControls.TemplateField

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

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

The Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.

.NET Framework

Supported in: 3.0, 2.0

Community Additions

ADD
Show:
© 2014 Microsoft