DataList.ExtractTemplateRows Property

Gets or sets a value that indicates whether the rows of a Table control, defined in each template of a DataList control, are extracted and displayed.

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

public virtual bool ExtractTemplateRows { get; set; }
/** @property */
public boolean get_ExtractTemplateRows ()

/** @property */
public void set_ExtractTemplateRows (boolean value)

public function get ExtractTemplateRows () : boolean

public function set ExtractTemplateRows (value : boolean)

Property Value

true if the rows of a Table control, defined in each template of a DataList control, are extracted and displayed; otherwise, false. The default value is false.

The contents of the DataList control are specified by using templates. Normally, you list controls that you want to display in the templates. You can also place a Table control in a template and display the rows of the table.

Use the ExtractTemplateRows property to specify whether the rows of a Table control defined in each template of a DataList control are extracted and displayed. All rows extracted from the templates of the DataList control are displayed in a single table. This allows you to create a single table from other smaller tables and still maintain the features of the DataList control.


When this property is set to true, you must provide a well-formed Table control for each template you want to include in the DataList control. Only the rows of the tables will be displayed. All other content in the template will be ignored. You must use a Table control for this feature to work properly. The System.Web.UI.HtmlControls.HtmlTable control is not compatible with this property.

When you create a cell for a Table control in a template, you can use the ColumnSpan property of the TableCell object to control the number of columns the cell spans. You can also use the RowSpan property to control the number of rows the cell spans.


The RepeatColumns, RepeatDirection, and RepeatLayout properties do not affect the appearance of the DataList control when this property is set to true.

The following code example demonstrate how to use the ExtractTemplateRows property to extract and display the rows of Table controls defined in the templates of the DataList control.


The following code sample uses the single-file code model and may not work correctly if copied directly into a code-behind file. This code sample must be copied into an empty text file that has an .aspx extension. For more information on the Web Forms code model, see ASP.NET Web Page Code Model.

<%@ Page Language="C#" AutoEventWireup="True" %>
<%@ Import Namespace="System.Data" %>
   <script runat="server">
      ICollection CreateDataSource() 
         DataTable dt = new DataTable();
         DataRow dr;
         dt.Columns.Add(new DataColumn("StringValue", typeof(string)));
         dt.Columns.Add(new DataColumn("PriceValue", typeof(string)));
         dt.Columns.Add(new DataColumn("DescriptionValue", typeof(string)));
         for (int i = 0; i < 10; i++) 
            dr = dt.NewRow();
            dr[0] = "Item " + i.ToString();
            dr[1] = (1.23 * (i+1)).ToString();
            dr[2] = "Description for Item " + i.ToString();
         DataView dv = new DataView(dt);
         return dv;
      void Page_Load(Object sender, EventArgs e) 
         if (!IsPostBack) 
            DataList1.DataSource = CreateDataSource();
   <form runat=server>

      <h3>DataList ExtractTemplateRows Example</h3>
      <asp:DataList id="DataList1" runat="server"

         <HeaderStyle BackColor="#aaaadd">

         <AlternatingItemStyle BackColor="Gainsboro">


            <asp:Table id="Table1" runat="server">






            <asp:Table id="Table2" runat="server">


                        Text='<%# DataBinder.Eval(Container.DataItem, "StringValue") %>'>

                        Text='<%# DataBinder.Eval(Container.DataItem, "PriceValue") %>'>



                        Text='<%# DataBinder.Eval(Container.DataItem, "DescriptionValue") %>'>




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, 1.1, 1.0