在Repeater 中使用Repeater的方法, Repeater2 内嵌 Repeater1操作
在Repeater 中使用Repeater的方法
前台代码:
<asp:Repeater ID="Repeater1" runat="server" OnItemDataBound="Repeater1_ItemDataBound"> <ItemTemplate> <div class="nav_title"> <%#Eval("class") %></div> <ul class="nav"> <asp:Repeater ID="Repeater2" runat="server"> <ItemTemplate> <li><a class="<%#Convert.ToInt32(Eval("id"))==sortId?"select":"" %>" href="line.aspx?sort_id=<%#Eval("id") %>"><%#Eval("sort") %></a></li> </ItemTemplate> </asp:Repeater> </ul> </ItemTemplate> </asp:Repeater>
后台代码(Repeater就不写了,直接第二个):
protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e) { if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) { Repeater rptProduct = (Repeater)e.Item.FindControl("Repeater2"); //找到分类Repeater关联的数据项 DataRowView rowv = (DataRowView)e.Item.DataItem; //提取分类ID string classKey = rowv["class"].ToString(); //根据分类ID查询该分类下的产品,并绑定产品Repeater DataSet st = AccessHelper.ExecuteDataSet("select distinct [sort],[id] from [line_sort] where [class]=@class",AccessHelper.Parameter("@class",classKey)); rptProduct.DataSource = st.Tables[0]; rptProduct.DataBind(); } }