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

来源:互联网 发布:spps怎么实现数据筛选 编辑:程序博客网 时间:2024/04/24 13:59

 

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

 

原创粉丝点击