Repeater 控件的几个模板项介绍
AlternatingItemTemplate
对交替数据项进行格式设置,与 ItemTemplate 元素类似,但在 Repeater 控件中隔行(交替项)呈现一次。通过设置 AlternatingItemTemplate 元素的样式属性,可以为其指定不同的外观。
FooterTemplate
该模板确定了控件页脚的呈现样式,在所有数据绑定行呈现之后呈现的元素。用于控制Repeater 控件底部的样式和布局。
注意 FooterTemplate 不能是数据绑定的。
HeaderTemplate
该模板确定了控件页眉的呈现样式,在所有数据绑定行呈现之前呈现一次的元素。用于控制Repeater 控件头部的样式和布局。
注意 HeaderTemplate 项不能是数据绑定的。
ItemTemplate
该模板确定了数据项的呈现样式,对每一个数据项进行格式设置,为数据源中的每一行都呈现一次的元素
SeparatorTemplate
该模板定义了数据项间隔的呈现样式
Repeater数据绑定的实现
DataBind
ItemCommand
ItemCreate
ItemDataBind
Repeater嵌套Repeater 的实现代码
前台页面部分:
<asp:Repeater id="rptCategories" runat="server">
<HeaderTemplate>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
</HeaderTemplate>
<ItemTemplate>
<!--分类名称-->
<tr><th><%# DataBinder.Eval(Container.DataItem, "TypeName") %></th></tr>
<!--分类下的产品-->
<asp:Repeater id="rptProduct" runat="server">
<ItemTemplate>
<tr><td><a href='ProductInfo.aspx?Id=<%# DataBinder.Eval(Container.DataItem, "ID") %>'><%# DataBinder.Eval(Container.DataItem, "ProductName") %></a></td></tr>
</ItemTemplate>
</asp:Repeater>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
后台代码部分(部分代码):
//在绑定分类品名时,绑定分类下的产品
private void rptCategories_ItemDataBound(object sender, System.Web.UI.WebControls.RepeaterItemEventArgs e)
{
BLL.Products products =new BLL.Products();
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
Repeater rptProduct = (Repeater) e.Item.FindControl("rptProduct");
//找到分类Repeater关联的数据项
DataRowView rowv = (DataRowView)e.Item.DataItem;
//提取分类ID
int CategorieId = Convert.ToInt32(rowv["ID"]);
//根据分类ID查询该分类下的产品,并绑定产品Repeater
rptProduct.DataSource = products.GetProductsByCategorieId(CategorieId);
rptProduct.DataBind();
}
}
参考资料: repeater控件介绍、 repeater嵌套repeater
http://www.studyofnet.com/news/200.html