SIGN UP MEMBER LOGIN:    
ARTICLE

Repeater Controls in ASP.NET

Posted by Puran Mehra Articles | ASP.NET Controls in C# September 29, 2009
In this article I will explain about data binding feature for a Repeater control in ASP .Net with C# code.
Reader Level:


The Repeater control is used to display a repeated list of items that are bound to the control. The Repeater control may be bound to a database table, an XML file, or another list of items.

Repeater is a Data Bind Control. Data Bind Controls are container controls. Data Binding is the process of creating a link between the data source and the presentation UI to display the data. ASP .Net provides rich and wide variety of controls, which can be bound to the data.

Repeater has 5 inline template to format it:

1. <HeaderTemplate>
2. <FooterTemplate>
3. <ItemTemplate>
4. <AlternatingItemTemplate>
5. <SeperatorTemplate>
6. <AlternatingItemTemplate>

HeaderTemplate: This template is used for elements that you want to render once before your ItemTemplate section.

FooterTemplate: - This template is used for elements that you want to render once after your ItemTemplate section.

ItemTemplate: This template is used for elements that are rendered once per row of data. It is used to display records

AlternatingItemTemplate: This template is used for elements that are rendered every second row of data. This allows you to alternate background colors. It works on even number of records only.

SeperatorTemplate: It is used for elements to render between each row, such as line breaks.

Some point about Repeater Control

  • It is used to display backend result set. It is used to display multiple tuple.
  • It is an unformatted control. 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 is the only Web control that 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.

We have to use scriptlets for data access.

Data Bind Control can display connected and disconnected model.

Data Bind Control have DataBind() method and DataBound event

-> DataBind()
-> ItemCreated -> Event
-> DataBound -> Event

System.Commom.Data        namespace
-> DBDataRecord               Class

Controls -> Child Control

Every DataBindControl implement collection.

The data in DataSource is bound to Repeater using its DataBind Method. Once the data is bound, the format of each data item is defined by a template like ItemTemplate.

How to use a Repeater Control?

Create a new website with name RepeaterControl

Double click the web.config file and write following code in it:

<connectionStrings
>
                <
add name="constr" connectionString="initial catalog=puran; data source=MCN002; integrated security=sspi"/>

        </
connectionStrings>

Default.aspx file code

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!
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">
    <link rel="Stylesheet" type="text/css" href="StyleSheet.css"
/>
    <title>Repeater Controls in ASP.NET</title>

</
head>
<
body
>
    <form id="form1" runat
="server">
    <div
>
        <asp:Repeater ID="RepeatInformation" runat
="server">
            <HeaderTemplate
>
                <table class
="tblcolor">
                    <tr
>
                        <b
>
                            <td
>
                                Roll No
                            </td
>
                            <td
>
                                Student Name
                            </td
>
                            <td
>
                                Total Fees
                            </td
>
                        </b
>
                    </tr
>
            </HeaderTemplate
>
            <ItemTemplate
>
                <tr class
="tblrowcolor">
                    <td
>
                        <%#DataBinder.Eval(Container,"DataItem.RollNo")
%>
                    </td
>
                    <td
>
                        <%#DataBinder.Eval(Container,"DataItem.Name")
%>
                    </td
>
                    <td
>
                        <%#DataBinder.Eval(Container,"DataItem.Fees")
%>
                    </td
>
                </tr
>
            </ItemTemplate
>
            <SeparatorTemplate
>
                <tr
>
                    <td
>
                        <hr
/>
                    </td
>
                    <td
>
                        <hr
/>
                    </td
>
                    <td
>
                        <hr
/>
                    </td
>
                </tr
>
            </SeparatorTemplate
>
            <AlternatingItemTemplate
>
                <tr
>
                    <td
>
                        <%#DataBinder.Eval(Container,"DataItem.RollNo")
%>
                    </td
>
                    <td
>
                        <%#DataBinder.Eval(Container,"DataItem.Name")
%>
                    </td
>
                    <td
>
                        <%#DataBinder.Eval(Container,"DataItem.Fees")
%>
                    </td
>
                </tr
>
            </AlternatingItemTemplate
>
            <SeparatorTemplate
>
                <tr
>
                    <td
>
                        <hr
/>
                    </td
>
                    <td
>
                        <hr
/>
                    </td
>
                    <td
>
                        <hr
/>
                    </td
>
                </tr
>
            </SeparatorTemplate
>
            <FooterTemplate
>
                <tr
>
                    <td
>
                        School Records displayed
                    </td
>
                </tr
>
                </table
>
            </FooterTemplate
>
        </asp:Repeater
>
    </div
>
    </form
>
</
body
>
</
html>


Code behind file code


using
System;
using
System.Configuration;
using
System.Data;
using
System.Linq;
using
System.Web;
using
System.Web.Security;
using
System.Web.UI;
using
System.Web.UI.HtmlControls;
using
System.Web.UI.WebControls;
using
System.Web.UI.WebControls.WebParts;
using
System.Xml.Linq;
using
System.Data.SqlClient;

public partial class _Default : System.Web.UI.
Page
{
    SqlConnection con;
    SqlCommand cmd = new SqlCommand();
    protected void Page_Load(object sender, EventArgs e)
    {
        con = new SqlConnection(ConfigurationManager.ConnectionStrings["constr"].ConnectionString);
        cmd.Connection = con;
        cmd.CommandText = "select * from student";
        con.Open();
        RepeatInformation.DataSource = cmd.ExecuteReader();
        RepeatInformation.DataBind();
        con.Close();
    }
}

The ASP.NET Repeater Control will not render the result unless you bound it to a data source through its DataSource property.

Output of the above program

repeater.gif

This article is for making a beginner learn and use Repeater Control.

Note: In the above example you have to change the connection string according to your database and data source.

Conclusion

I hope that this article would have helped you in understanding the Repeater Control in ASP.NET. Please share it if you know more about this article. Your feedback and constructive contributions are welcome.

Login to add your contents and source code to this article
share this article :
post comment
 

Thank you for this useful article

Posted by Tariq Mardawi Dec 12, 2011

It is really very useful for me.

Posted by praful vaghela Apr 10, 2011

9W
V
215
153
9W
H
245
153
9W
K
285
153
9W
V
301
153
9W
S
328
153
9W
H
331
153
My data is displaying like this but i need to display like only one time 9w and all classes are present n horizantol manner.

Posted by SAIDI REDDY Sep 24, 2010

mark

Posted by LinHui LinHui Sep 29, 2009
Team Foundation Server Hosting
Become a Sponsor
PREMIUM SPONSORS
  • ceTE software specializes in components for dynamic PDF generation and manipulation. The DynamicPDF™ product line allows you to dynamically generate PDF documents, merge PDF documents and new content to existing PDF documents from within your applications. Visit DynamicPDF here
    The leading .NET charting control now features PDF, Flash and Silverlight export, visualization of large datasets and more. Deliver true charting functionality to your BI, Scorecard, Presentation or Scientific apps. Download evaluation now.
Team Foundation Server Hosting
Become a Sponsor