This class represents a special kind of data-bound list control that
can contain repeating buttons, static text, and other controls. The
Repeater control requires more work than a
straightforward DataGrid or
DataList control because it contains no built-in
styles or layout. Instead, you must create templates for the
Repeater using HTML and ASP.NET tags in the
.aspx file. Each template is bracketed inside
the appropriate template tag (like
<ItemTemplate>). You do not set the
corresponding System.Web.UI.ITemplate properties
of this class directly.
Every Repeater control requires an
ItemTemplate. Additionally, an
AlternatingItemTemplate can be used to allow items
to alternate between two styles. These two templates will be bound
when you use the DataBind( ) method. The other
templates, like HeaderTemplate,
FooterTemplate, and
SeparatorTemplate, will not. If the
DataSource property is set but no data is
returned, only the HeaderTemplate and
FooterTemplate will be rendered. If the
DataSource property is not set (it will be
null by default), the control is not rendered at
all.
The Repeater control is unique because it allows you to enter any
HTML content in a template, and even split HTML tags across more than
one template. To use a table in your Repeater control, you should
include the begin table tag (<table>) in the
HeaderTemplate and the end table tag
(</table>) in the
FooterTemplate. You can then use a single table
row tag (<tr>) in the
ItemTemplate and multiple table data tags
(<td>).
The Repeater has no built-in support for item selection or editing.
You can include a Button control inside an
ItemTemplate, although you will have to write its
tag manually, rather than using the Visual Studio .NET designer. When
the user clicks this button, a ItemCommand event
will be fired. This event provides additional information about the
selected button and list item.
public class Repeater : System.Web.UI.Control, System.Web.UI.INamingContainer {
// Public Constructors
public Repeater( );
// Public Instance Properties
public virtual ITemplate AlternatingItemTemplate{set; get; }
public override ControlCollection Controls{get; } // overrides System.Web.UI.Control
public virtual string DataMember{set; get; }
public virtual object DataSource{set; get; }
public virtual ITemplate FooterTemplate{set; get; }
public virtual ITemplate HeaderTemplate{set; get; }
public virtual RepeaterItemCollection Items{get; }
public virtual ITemplate ItemTemplate{set; get; }
public virtual ITemplate SeparatorTemplate{set; get; }
// Public Instance Methods
public override void DataBind( ); // overrides System.Web.UI.Control
// Protected Instance Methods
protected override void CreateChildControls( ); // overrides System.Web.UI.Control
protected virtual void CreateControlHierarchy(bool useDataSource);
protected virtual RepeaterItem CreateItem(int itemIndex, ListItemType itemType);
protected virtual void InitializeItem(RepeaterItem item);
protected override bool OnBubbleEvent(object sender, EventArgs e); // overrides System.Web.UI.Control
protected override void OnDataBinding(EventArgs e); // overrides System.Web.UI.Control
protected virtual void OnItemCommand(RepeaterCommandEventArgs e);
protected virtual void OnItemCreated( RepeaterItemEventArgs e);
protected virtual void OnItemDataBound(RepeaterItemEventArgs e);
// Events
public event RepeaterCommandEventHandler ItemCommand;
public event RepeaterItemEventHandler ItemCreated;
public event RepeaterItemEventHandler ItemDataBound;
}