repeater控件介绍、 repeater嵌套的代码实现

本文介绍了ASP.NET中Repeater控件的各种模板项,包括ItemTemplate、AlternatingItemTemplate等,并详细解释了DataBind方法及Repeater事件如ItemCommand、ItemCreate的作用。同时,通过实例展示了如何实现Repeater控件的嵌套。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

Repeater 控件的几个模板项介绍

AlternatingItemTemplate

对交替数据项进行格式设置,与 ItemTemplate 元素类似,但在 Repeater 控件中隔行(交替项)呈现一次。通过设置 AlternatingItemTemplate 元素的样式属性,可以为其指定不同的外观。

FooterTemplate

该模板确定了控件页脚的呈现样式,在所有数据绑定行呈现之后呈现的元素。用于控制Repeater 控件底部的样式和布局。

注意 FooterTemplate 不能是数据绑定的。

HeaderTemplate

该模板确定了控件页眉的呈现样式,在所有数据绑定行呈现之前呈现一次的元素。用于控制Repeater 控件头部的样式和布局。

注意 HeaderTemplate 项不能是数据绑定的。

ItemTemplate

该模板确定了数据项的呈现样式,对每一个数据项进行格式设置,为数据源中的每一行都呈现一次的元素

SeparatorTemplate

该模板定义了数据项间隔的呈现样式

 

Repeater数据绑定的实现

 


DataBind
要想为Repeater控件生成HTML代码,并将其添加到输出流中以显示到最终的浏览器中,必须调用DataBind方法。此外Repeater控件还提供了一下常用事件。

ItemCommand
该事件是Repeater中最常用的一个事件,单击Repeater控件中的按钮(Button或LinkButton)时触发该事件。

ItemCreate
在创建一个Repeater项时触发该事件,DataItem属性总是返回NULL

ItemDataBind
将Repeater控件中的某个项绑定到基层数据以后触发该事件,ItemTemplate和AlternatingItemTemplate绑定项的DataItem属性不为NULL
 
 

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值