<asp:Repeater ..... OnItemDataBound="Frist_ItemDataBound">
<ItemTemplate>
<h2><a href="#" target="_blank"><%#Eval("TypeName")%></a></h2>
<p>
<asp:Repeater ID="SecondType" runat="server">
<ItemTemplate>
<a href="#" target="_blank" class=""><%#Eval("TypeName")%></a><span>|</span>
</ItemTemplate>
</asp:Repeater>
</p>
</ItemTemplate>
</asp:Repeater>
protected void Frist_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
Repeater SecondType= (Repeater)e.Item.FindControl("SecondType");
// 找到分类Repeater关联的数据项
DataRowView rowv = (DataRowView)e.Item.DataItem;
// 提取分类ID
int CategorieId = Convert.ToInt32(rowv["id"]);
//根据分类ID查询该分类下的产品,并绑定产品Repeater
SecondType.DataSource =
SecondType.DataBind();
}
}
首先,写一个用户控件:传进一个分类ID,显示列表,这个会了吧,实现后例如
<uc1:MyXX id="MyXX1" ClassID="等人传进来" />
接着在页面循环这个用户控件,最终大体如下:
分类导航
<asp:repeater ......一堆属性省略>
<ItemTemplate>
<%# Eval("绑定分类名称") %>
<uc1:MyXX id="MyXX1" ClassID='<%#Eval("绑定分类ID") %>' /><!--没法绑定ID就后台代码绑定-->
</ItemTemplate>
</asp:repeater>
用2个Repeater控件嵌套就能实现,楼上已经给出demo了...又是SEO?