This documentation is archived and is not being maintained.

ListView.LayoutTemplate Property

Gets or sets the custom content for the root container in a ListView control.

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

public virtual ITemplate LayoutTemplate { get; set; }

Property Value

Type: System.Web.UI.ITemplate
An object that contains the custom content for the root container in a ListView control. The default is null, which indicates that this property is not set.

Use the LayoutTemplate property to define a custom user interface (UI) for the root container of the ListView control.

To specify the layout template, add a LayoutTemplate element inside the ListView control. You can then add the contents of the template to the LayoutTemplate element.

The LayoutTemplate content must include a placeholder control such as a table row (tr) element for the items that are defined by the ItemTemplate template or for groups that are defined by the GroupTemplate template. The placeholder control must have the runat attribute set to "server" and the ID attribute set to the value of the ItemPlaceholderID or the GroupPlaceholderID property, depending on whether the ListView control is using groups.

The LayoutTemplate template is not required by the ListView control. You can use the ListView control without a LayoutTemplate and also without a placeholder server control with a known ID.

The following example shows how to define a custom template for the root container in the ListView control.

Security noteSecurity Note

This example has a text box that accepts user input, which is a potential security threat. By default, ASP.NET Web pages validate that user input does not include script or HTML elements. For more information, see Script Exploits Overview.

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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

<html xmlns="" >
  <head id="Head1" runat="server">
    <title>ListView Templates Example</title>
    <form id="form1" runat="server">

      <h3>ListView Templates Example</h3>

      <asp:ListView ID="ContactsListView" 
          <table cellpadding="2" width="640px" border="1" runat="server" id="tblProducts">
            <tr runat="server">
              <th runat="server">Action</th>
              <th runat="server">First Name</th>
              <th runat="server">Last Name</th>
            <tr runat="server" id="itemPlaceholder" />
          <asp:DataPager runat="server" ID="ContactsDataPager" PageSize="12">
              <asp:NextPreviousPagerField ShowFirstPageButton="true" ShowLastPageButton="true"
                FirstPageText="|&lt;&lt; " LastPageText=" &gt;&gt;|"
                NextPageText=" &gt; " PreviousPageText=" &lt; " />
          <tr runat="server">
              <asp:LinkButton ID="EditButton" runat="Server" Text="Edit" CommandName="Edit" />
              <asp:Label ID="FirstNameLabel" runat="Server" Text='<%#Eval("FirstName") %>' />
            <td valign="top">
              <asp:Label ID="LastNameLabel" runat="Server" Text='<%#Eval("LastName") %>' />
          <tr style="background-color: #ADD8E6">
              <asp:LinkButton ID="UpdateButton" runat="server" CommandName="Update" Text="Update" />&nbsp;
              <asp:LinkButton ID="CancelButton" runat="server" CommandName="Cancel" Text="Cancel" />
              <asp:TextBox ID="FirstNameTextBox" runat="server" Text='<%#Bind("FirstName") %>' 
                MaxLength="50" /><br />
              <asp:TextBox ID="LastNameTextBox" runat="server" Text='<%#Bind("LastName") %>' 
                MaxLength="50" /><br />

      <!-- This example uses Microsoft SQL Server and connects      -->
      <!-- to the AdventureWorks sample database. Use an ASP.NET    -->
      <!-- expression to retrieve the connection string value       -->
      <!-- from the Web.config file.                                -->
      <asp:SqlDataSource ID="ContactsDataSource" runat="server" 
        ConnectionString="<%$ ConnectionStrings:AdventureWorks_DataConnectionString %>"
        SelectCommand="SELECT [ContactID], [FirstName], [LastName] FROM Person.Contact"
        UpdateCommand="UPDATE Person.Contact
                       SET FirstName = @FirstName, LastName = @LastName
                       WHERE ContactID = @ContactID">


The following example shows how to use the ListView control without defining a LayoutTemplate template in the control. A server control with a known ID is also not specified.

<asp:ListView ID="ListView1" runat="server">
    <% Eval("LastName")%>

.NET Framework

Supported in: 4, 3.5

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

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