前台
<asp:Repeater ID="repPSort" runat="server" OnItemDataBound="repPSort_ItemDataBound">
<ItemTemplate>
<p class="subme">
<img src="/images/icon4.jpg" /><a href="/Product/<%#Eval("PS_Id") %>-1.html"><%# Eval("PS_Name") %></a></p>
<asp:Repeater ID="repProduct" runat="server">
<HeaderTemplate>
<ul class="productMenu">
</HeaderTemplate>
<ItemTemplate>
<li><a href="/Productshow/<%#Eval("P_Id") %>.html">
<%# base.CutStringExt(Eval("P_Name").ToString(), 20) %></a></li>
</ItemTemplate>
<FooterTemplate>
</ul>
<p class="clear">
</p>
</FooterTemplate>
</asp:Repeater>
</ItemTemplate>
</asp:Repeater>
后台
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
RpTypeBind();
}
}
private void RpTypeBind()
{//GetQuestionTypeAndCount() 返回一个datatable
this.repPSort.DataSource = new BProductSort().GetListExt(count);
this.repPSort.DataBind();
}
protected void repPSort_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
//判断里层repeater处于外层repeater的哪个位置( AlternatingItemTemplate,FooterTemplate,
//HeaderTemplate,,ItemTemplate,SeparatorTemplate)
if (this.count!=string.Empty)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
Repeater rep = e.Item.FindControl("repProduct") as Repeater;//找到里层的repeater对象
DataRowView rowv = (DataRowView)e.Item.DataItem;//找到分类Repeater关联的数据项
int typeid = Convert.ToInt32(rowv["PS_Id"]); //获取填充子类的id
DataTable dt = new BProduct().GetList(" top 16 ", " where P_SortId=" + typeid);
if (dt.DefaultView.Count > 0)
{
rep.DataSource = dt;
rep.DataBind();
}
else
{
e.Item.FindControl("repProduct").Visible = false;
}
}
}
else
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
Repeater rep = e.Item.FindControl("repProduct") as Repeater;//找到里层的repeater对象
DataRowView rowv = (DataRowView)e.Item.DataItem;//找到分类Repeater关联的数据项
int typeid = Convert.ToInt32(rowv["PS_Id"]); //获取填充子类的id
DataTable dt = new BProduct().GetList(" top "+a, " where P_SortId=" + typeid);
if (dt.DefaultView.Count>0)
{
rep.DataSource = dt;
rep.DataBind();
}
else
{
e.Item.FindControl("repProduct").Visible = false;
}
}
}
}