TemplateField Class

Definition

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

public ref class TemplateField : System::Web::UI::WebControls::DataControlField
public class TemplateField : System.Web.UI.WebControls.DataControlField
type TemplateField = class
    inherit DataControlField
Public Class TemplateField
Inherits DataControlField
Inheritance
TemplateField

Examples

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>

<%@ Page language="VB" %>

<!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>

Remarks

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.

Note

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.

Constructors

TemplateField()

Initializes a new instance of the TemplateField class.

Properties

AccessibleHeaderText

Gets or sets text that is rendered as the AbbreviatedText property value in some controls.

(Inherited from DataControlField)
AlternatingItemTemplate

Gets or sets the template for displaying the alternating items in a TemplateField object.

Control

Gets a reference to the data control that the DataControlField object is associated with.

(Inherited from DataControlField)
ControlStyle

Gets the style of any Web server controls contained by the DataControlField object.

(Inherited from DataControlField)
ConvertEmptyStringToNull

Gets or sets a value indicating whether the value that the TemplateField object is bound to should be converted to null if it is Empty.

DesignMode

Gets a value indicating whether a data control field is currently viewed in a design-time environment.

(Inherited from DataControlField)
EditItemTemplate

Gets or sets the template for displaying an item in edit mode in a TemplateField object.

FooterStyle

Gets or sets the style of the footer of the data control field.

(Inherited from DataControlField)
FooterTemplate

Gets or sets the template for displaying the footer section of a TemplateField object.

FooterText

Gets or sets the text that is displayed in the footer item of a data control field.

(Inherited from DataControlField)
HeaderImageUrl

Gets or sets the URL of an image that is displayed in the header item of a data control field.

(Inherited from DataControlField)
HeaderStyle

Gets or sets the style of the header of the data control field.

(Inherited from DataControlField)
HeaderTemplate

Gets or sets the template for displaying the header section of a TemplateField object.

HeaderText

Gets or sets the text that is displayed in the header item of a data control field.

(Inherited from DataControlField)
InsertItemTemplate

Gets or sets the template for displaying an item in insert mode in a TemplateField object.

InsertVisible

Gets a value indicating whether the DataControlField object is visible when its parent data-bound control is in insert mode.

(Inherited from DataControlField)
IsTrackingViewState

Gets a value indicating whether the DataControlField object is saving changes to its view state.

(Inherited from DataControlField)
ItemStyle

Gets the style of any text-based content displayed by a data control field.

(Inherited from DataControlField)
ItemTemplate

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

ShowHeader

Gets or sets a value indicating whether the header item of a data control field is rendered.

(Inherited from DataControlField)
SortExpression

Gets or sets a sort expression that is used by a data source control to sort data.

(Inherited from DataControlField)
ValidateRequestMode

Gets or sets a value that specifies whether the control validates client input.

ValidateRequestMode

Gets or sets a value that specifies whether the control validates client input.

(Inherited from DataControlField)
ViewState

Gets a dictionary of state information that allows you to save and restore the view state of a DataControlField object across multiple requests for the same page.

(Inherited from DataControlField)
Visible

Gets or sets a value indicating whether a data control field is rendered.

(Inherited from DataControlField)

Methods

CloneField()

Creates a duplicate copy of the current DataControlField-derived object.

(Inherited from DataControlField)
CopyProperties(DataControlField)

Copies the properties of the current TemplateField-derived object to the specified DataControlField object.

CreateField()

Creates a new TemplateField object.

Equals(Object)

Determines whether the specified object is equal to the current object.

(Inherited from Object)
ExtractValuesFromCell(IOrderedDictionary, DataControlFieldCell, DataControlRowState, Boolean)

Extracts the value of the data control fields as specified by one or more two-way binding statements (DataBind) from the current table cell and adds the values to the specified IOrderedDictionary collection.

GetHashCode()

Serves as the default hash function.

(Inherited from Object)
GetType()

Gets the Type of the current instance.

(Inherited from Object)
Initialize(Boolean, Control)

Performs basic instance initialization for a data control field.

(Inherited from DataControlField)
InitializeCell(DataControlFieldCell, DataControlCellType, DataControlRowState, Int32)

Adds text or controls to a cell's controls collection.

LoadViewState(Object)

Restores the data source view's previously saved view state.

(Inherited from DataControlField)
MemberwiseClone()

Creates a shallow copy of the current Object.

(Inherited from Object)
OnFieldChanged()

Raises the FieldChanged event.

(Inherited from DataControlField)
SaveViewState()

Saves the changes made to the DataControlField view state since the time the page was posted back to the server.

(Inherited from DataControlField)
ToString()

Returns a string that represents this DataControlField object.

(Inherited from DataControlField)
TrackViewState()

Causes the DataControlField object to track changes to its view state so they can be stored in the control's ViewState property and persisted across requests for the same page.

(Inherited from DataControlField)
ValidateSupportsCallback()

Determines whether the controls contained in a TemplateField object support page callbacks.

Explicit Interface Implementations

IDataSourceViewSchemaAccessor.DataSourceViewSchema

Gets or sets the schema associated with this DataControlField object.

(Inherited from DataControlField)
IStateManager.IsTrackingViewState

Gets a value indicating whether the DataControlField object is saving changes to its view state.

(Inherited from DataControlField)
IStateManager.LoadViewState(Object)

Restores the data control field's previously saved view state.

(Inherited from DataControlField)
IStateManager.SaveViewState()

Saves the changes made to the DataControlField view state since the time the page was posted back to the server.

(Inherited from DataControlField)
IStateManager.TrackViewState()

Causes the DataControlField object to track changes to its view state so they can be stored in the control's ViewState property and persisted across requests for the same page.

(Inherited from DataControlField)

Applies to

See also