Professional Documents
Culture Documents
Repeater Class (System - Web.UI - WebControls) - Microsoft Learn
Repeater Class (System - Web.UI - WebControls) - Microsoft Learn
Repeater Class
Reference
Definition
Namespace: System.Web.UI.WebControls
Assembly: System.Web.dll
A data-bound list control that allows custom layout by repeating a specified template
for each item displayed in the list.
In this article
Definition
Examples
Remarks
Constructors
Properties
Methods
Events
Explicit Interface Implementations
Extension Methods
Applies to
See also
C#
Derived System.Web.DynamicData.FilterRepeater
Implements INamingContainer
Examples
A Visual Studio Web site project with source code is available to accompany this topic:
Download .
https://learn.microsoft.com/en-us/dotnet/api/system.web.ui.webcontrols.repeater?view=netframework-4.8 1/19
22/11/2022, 06:10 Repeater Class (System.Web.UI.WebControls) | Microsoft Learn
The following code example demonstrates how to use two simple Repeater controls on
a page. The DataSource property is used to specify the data source for the Repeater
control. The first Repeater displays its items in a table; the second Repeater displays its
items in a comma-separated list.
ASP.NET (C#)
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<head>
<title>Repeater Example</title>
if (!IsPostBack) {
Repeater1.DataSource = values;
Repeater1.DataBind();
Repeater2.DataSource = values;
Repeater2.DataBind();
this.name = name;
this.ticker = ticker;
get {
return name;
get {
return ticker;
https://learn.microsoft.com/en-us/dotnet/api/system.web.ui.webcontrols.repeater?view=netframework-4.8 2/19
22/11/2022, 06:10 Repeater Class (System.Web.UI.WebControls) | Microsoft Learn
</script>
</head>
<body>
<h3>Repeater Example</h3>
<b>Repeater1:</b>
<br />
<HeaderTemplate>
<table border="1">
<tr>
<td><b>Company</b></td>
<td><b>Symbol</b></td>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
<br />
<b>Repeater2:</b>
<br />
<HeaderTemplate>
Company data:
</HeaderTemplate>
<ItemTemplate>
</ItemTemplate>
<SeparatorTemplate>, </SeparatorTemplate>
</asp:Repeater>
</form>
https://learn.microsoft.com/en-us/dotnet/api/system.web.ui.webcontrols.repeater?view=netframework-4.8 3/19
22/11/2022, 06:10 Repeater Class (System.Web.UI.WebControls) | Microsoft Learn
</body>
</html>
The following code example demonstrates how to use the DataSourceID property to
specify the data source for a Repeater control. The DataSourceID property is set to the
ID property of the SqlDataSource control used to retrieve the data. When the page is
loaded, the Repeater control automatically binds to the data source specified by the
SqlDataSource control and the data is displayed to the user.
ASP.NET (C#)
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<head>
</head>
<body>
<asp:repeater id="Repeater1"
datasourceid="SqlDataSource1"
runat="server">
<headertemplate>
<table border="1">
<tr>
<td><b>Product ID</b></td>
<td><b>Product Name</b></td>
</tr>
</headertemplate>
<itemtemplate>
<tr>
</tr>
</itemtemplate>
<footertemplate>
</table>
</footertemplate>
</asp:repeater>
<asp:sqldatasource id="SqlDataSource1"
connectionstring="<%$ ConnectionStrings:NorthWindConnection%>"
runat="server">
</asp:sqldatasource>
</form>
</body>
</html>
Remarks
In this topic:
Introduction
Data Binding
Templates
Declarative Syntax
Introduction
The Repeater control is a basic templated data-bound list. It has no built-in layout or
styles, so you must explicitly declare all layout, formatting, and style tags within the
control's templates.
The Repeater control allows you to split markup tags across the templates. To create a
table using templates, include the begin table tag ( <table> ) in the HeaderTemplate, a
single table row tag ( <tr> ) in the ItemTemplate, and the end table tag ( </table> ) in the
FooterTemplate.
The Repeater control has no built-in selection capabilities or editing support. You can
use the ItemCommand event to process control events that are raised from the
templates to the control.
U Caution
This control can be used to display user input, which might include malicious client
script. Check any information that is sent from a client for executable script, SQL
statements, or other code before displaying it in your application. ASP.NET
provides an input request validation feature to block script and HTML in user input.
Validation server controls are also provided to assess user input. For more
information, see Validation Server Control Syntax .
https://learn.microsoft.com/en-us/dotnet/api/system.web.ui.webcontrols.repeater?view=netframework-4.8 5/19
22/11/2022, 06:10 Repeater Class (System.Web.UI.WebControls) | Microsoft Learn
Data Binding
The Repeater control provides two properties to support data binding. To bind data to
any collection that implements the System.Collections.IEnumerable interface (such as a
System.Data.DataView, a System.Collections.ArrayList, or an array), or the IListSource
interface, use the DataSource property to specify the data source. When you set the
DataSource property, you must manually write the code to perform data binding. To
automatically bind the Repeater control to a data source represented by a data source
control, set the DataSourceID property to the ID of the data source control to use.
When you set the DataSourceID property, the Repeater control automatically binds to
the specified data source control on the first request. Therefore, you do not need to
explicitly call the DataBind method unless you have changed data-related properties of
the Repeater control.
If the Repeater control's data source is set but no data is returned, the control renders
the HeaderTemplate and FooterTemplate with no items. If the data source is null , the
Repeater is not rendered.
Templates
At a minimum, every Repeater control must define an ItemTemplate. However, other
optional templates described in the following table can be used to customize the
appearance of the list.
ItemTemplate Defines the content and layout of items within the list. This template is
required.
HeaderTemplate If defined, determines the content and layout of the list header. If not
defined, a header is not rendered.
https://learn.microsoft.com/en-us/dotnet/api/system.web.ui.webcontrols.repeater?view=netframework-4.8 6/19
22/11/2022, 06:10 Repeater Class (System.Web.UI.WebControls) | Microsoft Learn
FooterTemplate If defined, determines the content and layout of the list footer. If not
defined, a footer is not rendered.
Declarative Syntax
<asp:Repeater
DataMember="string"
DataSource="string"
DataSourceID="string"
EnableTheming="True|False"
EnableViewState="True|False"
ID="string"
runat="server"
Visible="True|False"
>
<AlternatingItemTemplate>
</AlternatingItemTemplate>
<FooterTemplate>
</FooterTemplate>
<HeaderTemplate>
</HeaderTemplate>
<ItemTemplate>
</ItemTemplate>
<SeparatorTemplate>
</SeparatorTemplate>
</asp:Repeater>
Constructors
Repeater() Initializes a new instance of the Repeater class.
https://learn.microsoft.com/en-us/dotnet/api/system.web.ui.webcontrols.repeater?view=netframework-4.8 7/19
22/11/2022, 06:10 Repeater Class (System.Web.UI.WebControls) | Microsoft Learn
Properties
Adapter Gets the browser-specific adapter for the control.
(Inherited from Control)
AlternatingItemTemplate Gets or sets the object implementing ITemplate that defines how
alternating items in the control are displayed.
BindingContainer Gets the control that contains this control's data binding.
(Inherited from Control)
ChildControlsCreated Gets a value that indicates whether the server control's child
controls have been created.
(Inherited from Control)
ClientIDMode Gets or sets the algorithm that is used to generate the value of
the ClientID property.
(Inherited from Control)
Context Gets the HttpContext object associated with the server control
for the current Web request.
(Inherited from Control)
DataMember Gets or sets the specific table in the DataSource to bind to the
control.
DataSource Gets or sets the data source that provides data for populating
the list.
https://learn.microsoft.com/en-us/dotnet/api/system.web.ui.webcontrols.repeater?view=netframework-4.8 8/19
22/11/2022, 06:10 Repeater Class (System.Web.UI.WebControls) | Microsoft Learn
DataSourceID Gets or sets the ID property of the data source control that the
Repeater control should use to retrieve its data source.
Events Gets a list of event handler delegates for the control. This
property is read-only.
(Inherited from Control)
FooterTemplate Gets or sets the ITemplate that defines how the footer section of
the Repeater control is displayed.
HasChildViewState Gets a value indicating whether the current server control's child
controls have any saved view-state settings.
(Inherited from Control)
HeaderTemplate Gets or sets the ITemplate that defines how the header section
of the Repeater control is displayed.
IsTrackingViewState Gets a value that indicates whether the server control is saving
changes to its view state.
(Inherited from Control)
https://learn.microsoft.com/en-us/dotnet/api/system.web.ui.webcontrols.repeater?view=netframework-4.8 9/19
22/11/2022, 06:10 Repeater Class (System.Web.UI.WebControls) | Microsoft Learn
IsViewStateEnabled Gets a value indicating whether view state is enabled for this
control.
(Inherited from Control)
ItemTemplate Gets or sets the ITemplate that defines how items in the
Repeater control are displayed.
ItemType The name of the model type for strongly typed data binding.
Page Gets a reference to the Page instance that contains the server
control.
(Inherited from Control)
RenderingCompatibility Gets a value that specifies the ASP.NET version that rendered
HTML will be compatible with.
(Inherited from Control)
SeparatorTemplate Gets or sets the ITemplate interface that defines how the
separator between items is displayed.
Site Gets information about the container that hosts the current
control when rendered on a design surface.
(Inherited from Control)
https://learn.microsoft.com/en-us/dotnet/api/system.web.ui.webcontrols.repeater?view=netframework-4.8 10/19
22/11/2022, 06:10 Repeater Class (System.Web.UI.WebControls) | Microsoft Learn
control.
(Inherited from Control)
UniqueID Gets the unique, hierarchically qualified identifier for the server
control.
(Inherited from Control)
ValidateRequestMode Gets or sets a value that indicates whether the control checks
client input from the browser for potentially dangerous values.
(Inherited from Control)
ViewStateIgnoresCase Gets a value that indicates whether the StateBag object is case-
insensitive.
(Inherited from Control)
Methods
AddedControl(Control, Int32) Called after a child control is added to the Controls collection of
the Control object.
(Inherited from Control)
AddParsedSubObject(Object) Notifies the server control that an element, either XML or HTML,
was parsed, and adds the element to the server control's
ControlCollection object.
(Inherited from Control)
ApplyStyleSheetSkin(Page) Applies the style properties defined in the page style sheet to
the control.
(Inherited from Control)
https://learn.microsoft.com/en-us/dotnet/api/system.web.ui.webcontrols.repeater?view=netframework-4.8 11/19
22/11/2022, 06:10 Repeater Class (System.Web.UI.WebControls) | Microsoft Learn
ClearChildState() Deletes the view-state and control-state information for all the
server control's child controls.
(Inherited from Control)
ClearChildViewState() Deletes the view-state information for all the server control's
child controls.
(Inherited from Control)
CreateItem(Int32, ListItem Creates a RepeaterItem object with the specified item type and
Type) location within the Repeater control.
DataBind() Binds the Repeater control and all its child controls to the
specified data source.
DataBind(Boolean) Binds a data source to the invoked server control and all its child
controls with an option to raise the DataBinding event.
(Inherited from Control)
https://learn.microsoft.com/en-us/dotnet/api/system.web.ui.webcontrols.repeater?view=netframework-4.8 12/19
22/11/2022, 06:10 Repeater Class (System.Web.UI.WebControls) | Microsoft Learn
EnsureDataBound() Verifies that the Repeater control requires data binding and that
a valid data source control is specified before calling the
DataBind() method.
FindControl(String) Searches the current naming container for a server control with
the specified id parameter.
(Inherited from Control)
FindControl(String, Int32) Searches the current naming container for a server control with
the specified id and an integer, specified in the pathOffset
parameter, which aids in the search. You should not override this
version of the FindControl method.
(Inherited from Control)
GetRouteUrl(String, Object) Gets the URL that corresponds to a set of route parameters and
a route name.
https://learn.microsoft.com/en-us/dotnet/api/system.web.ui.webcontrols.repeater?view=netframework-4.8 13/19
22/11/2022, 06:10 Repeater Class (System.Web.UI.WebControls) | Microsoft Learn
GetRouteUrl(String, Route Gets the URL that corresponds to a set of route parameters and
ValueDictionary) a route name.
(Inherited from Control)
HasEvents() Returns a value indicating whether events are registered for the
control or any child controls.
(Inherited from Control)
MapPathSecure(String) Retrieves the physical path that a virtual path, either absolute or
relative, maps to.
(Inherited from Control)
https://learn.microsoft.com/en-us/dotnet/api/system.web.ui.webcontrols.repeater?view=netframework-4.8 14/19
22/11/2022, 06:10 Repeater Class (System.Web.UI.WebControls) | Microsoft Learn
Changed(Object, EventArgs)
RaiseBubbleEvent(Object, Assigns any sources of the event and its information to the
EventArgs) control's parent.
(Inherited from Control)
ResolveAdapter() Gets the control adapter responsible for rendering the specified
control.
(Inherited from Control)
https://learn.microsoft.com/en-us/dotnet/api/system.web.ui.webcontrols.repeater?view=netframework-4.8 15/19
22/11/2022, 06:10 Repeater Class (System.Web.UI.WebControls) | Microsoft Learn
ResolveUrl(String) Converts a URL into one that is usable on the requesting client.
(Inherited from Control)
SaveControlState() Saves any server control state changes that have occurred since
the time the page was posted back to the server.
(Inherited from Control)
SaveViewState() Saves any view-state changes that have occurred since the time
the page was posted back to the server.
SetTraceData(Object, Object) Sets trace data for design-time tracing of rendering data, using
the trace data key and the trace data value.
(Inherited from Control)
SetTraceData(Object, Object, Sets trace data for design-time tracing of rendering data, using
Object) the traced object, the trace data key, and the trace data value.
(Inherited from Control)
Events
CallingDataMethods Occurs when data methods are being called.
Init Occurs when the server control is initialized, which is the first
step in its lifecycle.
https://learn.microsoft.com/en-us/dotnet/api/system.web.ui.webcontrols.repeater?view=netframework-4.8 16/19
22/11/2022, 06:10 Repeater Class (System.Web.UI.WebControls) | Microsoft Learn
Load Occurs when the server control is loaded into the Page object.
(Inherited from Control)
PreRender Occurs after the Control object is loaded but prior to rendering.
(Inherited from Control)
https://learn.microsoft.com/en-us/dotnet/api/system.web.ui.webcontrols.repeater?view=netframework-4.8 17/19
22/11/2022, 06:10 Repeater Class (System.Web.UI.WebControls) | Microsoft Learn
Extension Methods
FindDataSource Returns the data source that is associated with the data control
Control(Control) for the specified control.
FindFieldTemplate(Control, Returns the field template for the specified column in the
String) specified control's naming container.
FindMetaTable(Control) Returns the metatable object for the containing data control.
GetDefaultValues(INaming Gets the collection of the default values for the specified data
Container) control.
GetMetaTable(INaming Gets the table metadata for the specified data control.
Container)
SetMetaTable(INaming Sets the table metadata for the specified data control.
Container, MetaTable)
SetMetaTable(INaming Sets the table metadata and default value mapping for the
Container, MetaTable, specified data control.
IDictionary<String,Object>)
SetMetaTable(INaming Sets the table metadata and default value mapping for the
Container, MetaTable, Object) specified data control.
EnableDynamicData(INaming Enables Dynamic Data behavior for the specified data control.
Container, Type)
EnableDynamicData(INaming Enables Dynamic Data behavior for the specified data control.
Container, Type,
IDictionary<String,Object>)
EnableDynamicData(INaming Enables Dynamic Data behavior for the specified data control.
Container, Type, Object)
Applies to
Product Versions
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
https://learn.microsoft.com/en-us/dotnet/api/system.web.ui.webcontrols.repeater?view=netframework-4.8 18/19
22/11/2022, 06:10 Repeater Class (System.Web.UI.WebControls) | Microsoft Learn
See also
DataGrid
DataList
Repeater Web Server Control Overview
https://learn.microsoft.com/en-us/dotnet/api/system.web.ui.webcontrols.repeater?view=netframework-4.8 19/19