首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

Repeater 嵌套怎么实现

2011-12-13 
Repeater 嵌套如何实现asp:RepeaterID fu_class runat server //父类ItemTemplate类别: %#Data

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

热点排行