描述:
我要实现的效果
一级分类A
一级小类A1
一级小类A2
一级分类B
二级小类B1
二级小类B2一级的我已经实现了,关键代码如下:
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<tr>
<td height="30" background="../Images/Back/Bg_02.gif">一级分类A</td>
</tr>
<!--小类循环显示开坮-->
<tr>
<td height="30" colspan="3" bgcolor="#FFFFFF">二级如何实现?</td>
</tr>
<!--小类循环显示结束-->
</ItemTemplate>
</asp:Repeater>
我要实现的效果
一级分类A
一级小类A1
一级小类A2
一级分类B
二级小类B1
二级小类B2一级的我已经实现了,关键代码如下:
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<tr>
<td height="30" background="../Images/Back/Bg_02.gif">一级分类A</td>
</tr>
<!--小类循环显示开坮-->
<tr>
<td height="30" colspan="3" bgcolor="#FFFFFF">二级如何实现?</td>
</tr>
<!--小类循环显示结束-->
</ItemTemplate>
</asp:Repeater>
<asp:Repeater ID="orderList" runat ="server" >
<ItemTemplate>
<table cellspacing="0" cellpadding="2" rules="all" border="1" id="Table1" style="border-color:#99CC00;border-width:1px;border-style:solid;width:100%;border-collapse:collapse;">
<tr>
<td>订单号:<%# Eval("OrderID") %></td>
<td>下单时间:<%# Eval("OrderDate") %></td>
</tr>
</table>
<asp:Repeater ID="detailList" runat ="server" >
<HeaderTemplate>
<table cellspacing="0" cellpadding="2" rules="all" border="1" id="shopList" style="border-color:#99CC00;border-width:1px;border-style:solid;width:100%;border-collapse:collapse;">
<tr>
<td align="center" style="background-color:#99CC00;">商品名称</td>
<td align="center" style="background-color:#99CC00;">购买价</td>
<td align="center" style="background-color:#99CC00;">数量</td>
<td align="center" style="background-color:#99CC00;">小计</td>
<td align="center" style="background-color:#99CC00;">图片</td>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td><%# Eval("FlowerName") %></td>
<td>¥<%# Eval("Price") %></td>
<td><%# Eval("Quantity")%></td>
<td>¥<%# Eval("UnitPrice")%></td>
<td><span onclick="openImg('<%#Eval("FlowerPhoto") %>');" style ="cursor :hand">查看</span></td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
</ItemTemplate>
</asp:Repeater>后台:private void orderList_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
PDSource.BLL.OrderDetails bll = new OrderDetails(); if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
Repeater detailList = (Repeater)e.Item.FindControl("detailList");
//找到分类Repeater关联的数据项
DataRowView rowv = (DataRowView)e.Item.DataItem;
//提取分类ID
int OrderId = Convert.ToInt32(rowv["OrderId"]);
//根据分类ID查询该分类下的产品,并绑定产品Repeater
detailList.DataSource = bll.GetListBySp(1, 10000, " OrderId =" + OrderId);
detailList.DataBind();
}
}
<ItemTemplate>
<%# Eval("id")%> <%# Eval("姓名")%>
<asp:Repeater ID="Repeater2" Runat="server" DataSource='<%# BindSub(Convert.ToInt32(Eval("id"))) %>'>
<ItemTemplate>
<%# Eval("科目")%> <%# Eval("分数")%>
</ItemTemplate>
</asp:Repeater>
</ItemTemplate>
</asp:Repeater>private void BindMain()
{
SqlConnection cn = new SqlConnection(@"server=.;uid=sa;pwd=;database=Demo");
SqlDataAdapter da = new SqlDataAdapter("select id,姓名 from 表1", cn);
DataSet ds = new DataSet();
cn.Open();
da.Fill(ds);
cn.Close();
Repeater1.DataSource = ds.Tables[0].DefaultView;
Repeater1.DataBind();
}protected DataTable BindSub(int id)
{
SqlConnection cn = new SqlConnection(@"server=.;uid=sa;pwd=;database=Demo");
SqlDataAdapter da = new SqlDataAdapter("select 科目, 分数 from 表2 where rid = @id", cn);
da.SelectCommand.Parameters.AddWithValue("id", id);
DataSet ds = new DataSet();
cn.Open();
da.Fill(ds);
cn.Close();
return ds.Tables[0];
}protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindMain();
}
}