Repeater Control in Asp .net C#

CoderSource.net
Repeater Control in Asp .net C#
Rating:

Date: 2/25/2005 8:10:23 AM

Repeater Control and Data Binding - ASP .Net and C#

Introduction:

 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. This model of binding data with the data source reduces a lot of code complexity and increases the ease of maintenance of code. This article looks at how to use this data binding feature for a Repeater control in ASP .Net with C# code.

Repeater Control in ASP .Net:

   A Repeater control is a light weight control which can be used for simple reporting purposes. It supports basic event-handling like Init, Load, Unload etc., This also supports some basic formatting of data and can be presented to the user. A Repeater control offers limited level of data editing or selecting capabilities. For such editing and updates ASP .Net offers DataList and DataGrid controls.

   A Repeater control can be used to build small and Flexible reports with the templates for the items. It supports the following five templates.

  • HeaderTemplate : Can be used to create the Header Rows of the Table data being presented by Repeater control.
  • FooterTemplate : Can be used to create the Footer Rows of the Table data being presented by Repeater control.
  • ItemTemplate : Used for formatting the Items and rows to be displayed.
  • AlternatingItemTemplate : Alternating items formatting.
  • SeparatorTemplate : Styles for separating rows and columns.

   There are many ways in which a control in ASP .Net can be formatted. It is up to the imagination of the programmer to come up with nice formats. For example the Footer rows can be manipulated in such a way that, it can show the summary values or totals etc.,

Repeater Syntax:

<asp:Repeater id="idrepeater" runat="server" Datasource="<%# dataset %>" DataMember="table-inside-dataset">
<HeaderTemplate>..Header Format ..</HeaderTemplate>
<ItemTemplate> .. Item formats .. </ItemTemplate>
</asp:Repeater>

    As given above, the syntax is simply the Repeater tag with the Template types. These templates can be formatted with ItemStyle tags also.

Using DataBinder.Eval method:

   The System.Web.UI.DataBinder class provides a useful static method DataBinder.Eval, which can be used to evaluate the data at run time using late binding. This function can be used with the Visual Studio IDE or can be manually coded as

 

<%#  DataBinder.Eval(Container.DataItem,"FieldName","Format") %>

   This evaluates and returns the data at run time. This can be used with Repeater, DataList and DataGrid controls though there will be a performance penalty because of the late binding mechanism used.

Creating a Sample Program with Repeater Control:

   Let's create a small sample program with the Repeater control. 

  1. Add a new Webform in an Visual Studio  Asp .net application.
  2. Add a Repeater control to the application. Let us assume that the id of the control is Repeater1.
  3. Insert the following lines of formatting code in between the opening and closing tags of the <asp:Repeater> control.
  4. <HeaderTemplate>
    <table cellpadding="5" cellspacing="2" >
    <tr bgcolor=Gray>
    <td><b>CustomerName</b></td>
    <td><b>Country</b></td>
    </tr>
    </HeaderTemplate>
    <ItemTemplate>
    <tr>
    <td><%# DataBinder.Eval(Container.DataItem,"CustomerName") %></td>
    <td><%# DataBinder.Eval(Container.DataItem,"Country") %></td>
    </tr>
    </ItemTemplate>
    <AlternatingItemTemplate>
    <tr bgcolor="#ccccff">
    <td><%# DataBinder.Eval(Container.DataItem,"CustomerName") %></td>
    <td><%# DataBinder.Eval(Container.DataItem,"Country") %></td>
    </tr>
    </AlternatingItemTemplate>
    <FooterTemplate>
    </table>
    </FooterTemplate>
  5. The above code just adds the repeater control with formatting for the header rows, data rows and the footer rows. The HeaderTemplate starts the <table> tag with the table heading and the FooterTemplate closes it.
  6. Now, Add the following code inside the Webform1.aspx.cs, Page_Load event.
    DataSet ds = new DataSet();
    DataTable dt = ds.Tables.Add("Customer");
    dt.Columns.Add("CustomerName",Type.GetType("System.String"));
    dt.Columns.Add("Country",Type.GetType("System.String"));

    DataRow dr = dt.NewRow();
    dr[0]="Testcustomer1";
    dr[1]="USA";
    dt.Rows.Add(dr);

    dr = dt.NewRow();
    dr[0]="Testcustomer2";
    dr[1]="UK";
    dt.Rows.Add(dr);

    dr = dt.NewRow();
    dr[0]="Testcustomer3";
    dr[1]="GERMANY";
    dt.Rows.Add(dr);

    dr = dt.NewRow();
    dr[0]="Testcustomer4";
    dr[1]="FRANCE";
    dt.Rows.Add(dr);

    //Bind the data to the Repeater
    Repeater1.DataSource = ds;
    Repeater1.DataMember = "Customer";
    Repeater1.DataBind();
  7. The above code creates a dataset to be used with the Repeater control. The repeater's datasource is the Dataset created and the Data member is mentioned as the Table which is created along with the dataset. This enables the Repeater to create the list of items from this customer table.
  8. Now build the application in Visual Studio .Net and load this page. The data will be shown in a tabular format.

   The above sample shows data binding from a statically created data set only. This can be very easily extended to a DataSet generated from database tables, xml files or even DataView s.

   Ultimately, this Repeater control can be used for light weight and simple report generation. This has only a very simple level event handling capabilities. Also there is a performance penalty because of using the DataBinder.Eval methods, this can be considered for data which are not modified frequently. If it is a large amount of data, then caching may be considered to improve the performance, though there are some other factors may have to be considered and not discussed here.

Attachments:

  Project Files : RepeaterSample.zip

You Can Rate this Article, if you are Logged In      
 

More Links from CoderSource.net:

 
Refer to a Friend:

Your Details:

Name:     e-mail:

Friend Details:

Name:    e-mail:    


MENU
Home
MFC 
C++
.Net
WIN32
Programming
Forum
My Articles
Add to Google
Add to My Yahoo!
Welcome to Codersource.Net Login | Register | Faq  

SEARCH
Google
 

NOTES:


Thanks for visiting our CoderSource.net. This site will be improved with more articles. Interested visitors can also submit their articles through the Submit Article link.Your article will also be published after due consideration by the editor. 

© Copyright 2003. All rights on content reserved by CoderSource.net. Contact    About Us