读书人

Repeater 嵌套怎么实现

发布时间: 2011-12-13 21:22:18 作者: rapoo

Repeater 嵌套如何实现
<asp:Repeater ID= "fu_class " runat= "server "> //父类
<ItemTemplate>
类别: <%#DataBinder.Eval(Container.DataItem, "bookclass ") %> <br>
//这里开始嵌套--------------------
<asp:Repeater ID= "zi_class " runat= "server "> //子类
<ItemTemplate>
书名: <%#DataBinder.Eval(Container.DataItem, "bookname ") %> <br>
</ItemTemplate>
</asp:Repeater>
//嵌套结束--------------------------
</ItemTemplate>
</asp:Repeater>


上面的是一个嵌套 ,我想实现的是如下显示
类别:生活
书名:**
书名:**
书名:****
类别:科学
书名:宇宙
书名:地球
类别。。。。。。。


两张表一张class类表 一张bookinfo信息表
class表结构
classid 类ID 主键
classname 类名

bookinfo表
classid 类ID 外键
bookname 书名


请问在.CS该如何写程序呢 100分的问题 谢谢


[解决办法]
前台页面部分:
<asp:Repeater id= "rptCategories " runat= "server ">
<HeaderTemplate>
<table width= "100% " border= "0 " cellspacing= "0 " cellpadding= "0 ">
</HeaderTemplate>
<ItemTemplate>
<!--分类名称-->
<tr> <th> <%# DataBinder.Eval(Container.DataItem, "TypeName ") %> </th> </tr>
<!--分类下的产品-->
<asp:Repeater id= "rptProduct " runat= "server ">
<ItemTemplate>
<tr> <td> <a href= 'ProductInfo.aspx?Id= <%# DataBinder.Eval(Container.DataItem, "ID ") %> '> <%# DataBinder.Eval(Container.DataItem, "ProductName ") %> </a> </td> </tr>


</ItemTemplate>
</asp:Repeater>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>

后台代码部分(部分代码):
//在绑定分类品名时,绑定分类下的产品
private void rptCategories_ItemDataBound(object sender, System.Web.UI.WebControls.RepeaterItemEventArgs e)
{
BLL.Products products =new BLL.Products();
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
Repeater rptProduct = (Repeater) e.Item.FindControl( "rptProduct ");
//找到分类Repeater关联的数据项
DataRowView rowv = (DataRowView)e.Item.DataItem;
//提取分类ID
int CategorieId = Convert.ToInt32(rowv[ "ID "]);
//根据分类ID查询该分类下的产品,并绑定产品Repeater
rptProduct.DataSource = products.GetProductsByCategorieId(CategorieId);
rptProduct.DataBind();
}
}

[解决办法]
呵呵,楼上做的很细了。其实还是要用datareader自己来画界面来实现比较好。
[解决办法]
为什么一定要使用嵌套的控件呢,俺就很不喜欢这种做,要实现嵌套显示数据,其实可以完全使用动态输出表格的办法来解决呀
如,首先把要显示的客户的名称存入一个数组中,之后,根据数据找到对应客户的所有信息,然后再动态输出表格,这样不就能实现了吗?
我想比嵌套要好吧,还方便,嵌套经常出问题的!

读书人网 >asp.net

热点推荐