您好,欢迎访问一九零五行业门户网

Repeater中嵌套使用Repeater

repeater中嵌套使用repeater。如图
本例使用 vs.net 2008(c#)编写。来自 admin10000.com
后台cs代码
protected void page_load(object sender, eventargs e) { if (!page.ispostback) { this.dtcategory = getcategorytable(); this.dtproduct = getproducttable(); rptcategorylist.datasource = dtcategory; rptcategorylist.databind(); } } // 准备一张分类表 datatable getcategorytable() { datatable dt = new datatable(); dt.columns.add("categoryid", typeof(int)); dt.columns.add("categorytitle", typeof(string)); for (int i = 1; i <= 3; i++) { datarow row = dt.newrow(); row["categoryid"] = i; row["categorytitle"] = "分类名字 " + i + ""; dt.rows.add(row); } return dt; } // 准备一张产品表 datatable getproducttable() { datatable dt = new datatable(); dt.columns.add("producttitle", typeof(string)); dt.columns.add("categoryid", typeof(int)); for (int i = 1; i <= 9; i++) { datarow row = dt.newrow(); row["producttitle"] = "产品名字 " + i + ""; if (i > 6) row["categoryid"] = 3; else if (i > 3) row["categoryid"] = 2; else row["categoryid"] = 1; dt.rows.add(row); } return dt; } // 获取某个类别的产品 datatable getproducttable(int categoryid) { dataview dv = this.dtproduct.defaultview; dv.rowfilter = " categoryid=" + categoryid + " "; return dv.totable(); } protected void rptcategorylist_itemdatabound(object sender, repeateritemeventargs e) { if (e.item.itemtype == listitemtype.alternatingitem || e.item.itemtype == listitemtype.item) { datarowview drv = (datarowview)e.item.dataitem; literal ltltitle = (literal)e.item.findcontrol("ltltitle"); ltltitle.text = drv["categorytitle"].tostring(); repeater rptproductlist = (repeater)e.item.findcontrol("rptproductlist"); rptproductlist.datasource = getproducttable(convert.toint32(drv["categoryid"])); rptproductlist.databind(); } } protected void rptproductlist_itemdatabound(object sender, repeateritemeventargs e) { if (e.item.itemtype == listitemtype.alternatingitem || e.item.itemtype == listitemtype.item) { datarowview drv = (datarowview)e.item.dataitem; literal ltltitle = (literal)e.item.findcontrol("ltltitle"); ltltitle.text = drv["producttitle"].tostring(); } }
前台aspx代码
<form id="form1" runat="server"> <p> <asp:repeater id="rptcategorylist" runat="server" onitemdatabound="rptcategorylist_itemdatabound"> <itemtemplate> <p class="listbox"> <p class="title"> <asp:literal id="ltltitle" runat="server"></asp:literal></p> <p class="content"> <ul> <asp:repeater id="rptproductlist" runat="server" onitemdatabound="rptproductlist_itemdatabound"> <itemtemplate> <li> <asp:literal id="ltltitle" runat="server"></asp:literal> </li> </itemtemplate> </asp:repeater> </ul> </p> </p> </itemtemplate> </asp:repeater> </p> </form>
下载代码示例:pagedemo.rar
相关文档: repeater控件的分页实现  repeater控件实现编辑、更新、删除操作  repeater多行间隔显示分隔符的方法
以上就是repeater中嵌套使用repeater的详细内容。
其它类似信息

推荐信息