Introduction
In
Part 1 article of this series, we have discussed how to Display Data with
Repeater Control but now in this part we will discuss how to use Templates with
Repeater Control.
Templates with Repeater Control
As we know Repeater control supports five different types of templates mostly:
- ItemTemplate: Formats each item from the data source.
- AlternatingItemTemplate: Formats every other item from the data source.
- SeparatorTemplate: Formats between each item from the data source.
- HeaderTemplate: Formats before all items from the data source.
- FooterTemplate: Formats after all items from the data source.
The order in which we declare the templates in
the Repeater control does not matter. We can use the AlternatingItemTemplate to
display alternating rows with a different background color. Here is the example
given below.

<%@ Page Language="VB"
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<style type="text/css">
html
{
background-color:aqua;
}
.content
{
width:600px;
border:solid 1px black;
background-color:white;
}
.books
{
border-collapse:collapse;
}
.movies th,.movies td
{
padding:10px;
border-bottom:1px solid black;
}
.alternating
{
background-color:#eeeeee;
}
.heading
{
background-color:Gray;
}
</style>
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div id="content">
<asp:Repeater
id="rptBooks"
DataSourceID="SqlDataSource1"
Runat="server">
<HeaderTemplate>
<table class="books">
<tr class="heading">
<th>Book
Number</th>
<th>Book
Name</th>
<th>Author
Name</th>
<th>Price</th>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td><%#
Eval("ID")%></td>
<td><%#Eval("TITLE")
%></td>
<td><%#Eval("AUTHOR")
%></td>
<td><%#Eval("PRICE")
%></td>
</tr>
</ItemTemplate>
<AlternatingItemTemplate>
<tr class="alternating">
<td><%#
Eval("ID")%></td>
<td><%#
Eval("TITLE")%></td>
<td><%#
Eval("AUTHOR")%></td>
<td><%#Eval("PRICE")
%></td>
</tr>
</AlternatingItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$
ConnectionStrings:DatabaseConnectionString1
%>"
ProviderName="<%$
ConnectionStrings:DatabaseConnectionString1.ProviderName
%>"
SelectCommand="SELECT
[ID], [TITLE], [AUTHOR], [PRICE] FROM [BOOK_LIST]">
</asp:SqlDataSource>
</div>
</form>
</body>
</html>
Repeater control in above example renders an HTML table in which every other row
appears with a gray background color. Notice that this Repeater control uses
four out of five of the templates supported by the Repeater: the ItemTemplate,
AlternatingItemTemplate, HeaderTemplate, and FooterTemplate. The
AlternatingItemTemplate contains almost exactly the same content as the
ItemTemplate. The only difference is that the <tr> tag includes a class
attribute that changes its background color. The SeparatorTemplate is used to
add content between each data item from the data source. For example, the page
given below uses a SeparatorItemTemplate to create a tab strip with the Repeater
control.

<%@ Page Language="VB"
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<style type="text/css">
html
{
background-color:silver;
}
.content
{
width:600px;
height:400px;
padding:10px;
border:solid 1px black;
background-color:white;
}
a
{
color:blue;
}
</style>
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div id="content">
<asp:Repeater
id="rptBookCategories"
DataSourceID="SqlDataSource1"
Runat="server">
<ItemTemplate>
<asp:HyperLink
id="lnkMenu"
Text='<%#Eval("NAME")%>'
NavigateUrl='<%#Eval("CATEGORYID","Default.aspx?id={0}")%>'
Runat="server" />
</ItemTemplate>
<SeparatorTemplate>
|
</SeparatorTemplate>
</asp:Repeater>
<asp:Repeater
id="rptBooks"
DataSourceID="SqlDataSource2"
Runat="server">
<HeaderTemplate>
<ul>
</HeaderTemplate>
<ItemTemplate>
<li><%#Eval("NAME")%></li>
</ItemTemplate>
<FooterTemplate>
</ul>
</FooterTemplate>
</asp:Repeater>
<br />
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$
ConnectionStrings:DatabaseConnectionString1
%>"
ProviderName="<%$
ConnectionStrings:DatabaseConnectionString1.ProviderName
%>"
SelectCommand="SELECT
[CATEGORYID], [NAME] FROM [CATEGORIES]">
</asp:SqlDataSource>
<br />
<asp:SqlDataSource ID="SqlDataSource2" runat="server"
ConnectionString="<%$
ConnectionStrings:DatabaseConnectionString1
%>"
ProviderName="<%$
ConnectionStrings:DatabaseConnectionString1.ProviderName
%>"
SelectCommand="SELECT
[ID], [NAME], [AUTHOR] FROM [BOOKS] WHERE ID=@ID">
<SelectParameters>
<asp:QueryStringParameter
Name="ID"
QueryStringField="ID" />
</SelectParameters>
</asp:SqlDataSource>
</div>
</form>
</body>
</html>
Note: Continue in next part.
HAVE A GREAT CODING!