写写程序,一种成就的感觉

写写程序,一种成就的感觉

导航

asp.net中Repeater的嵌套问题(IList)

Posted on 2009-09-21 09:56  hateyoucode  阅读(877)  评论(0编辑  收藏  举报

有一个商品订单的IList泛型类,我现在要把商品订单全部呈现出来,
IList<Order> orderList=new List<Order>();//声明
orderList=GetOrderList();//获取订单列表
repeater.DataSource=orderList;//绑定到repeater控件

但是orderList类下还有一个成员,orderList.ProductList,这个成员变量是IList类型,是指订单里的产品列表,也就是说一个产品订单里有多个商品.
现在我要把它们用嵌套Repeater显示出来,大家给个方法


示意图如下:

                          订单一

用户名:XX
运送地址:XX
产品列表:
产品1
产品2
……

                          订单二

用户名:XX
运送地址:XX
产品列表:
产品1
产品2
……

 

 

 

 

用repeater的ItemDataBound事件
------------------------------
aspx

<asp:Repeater ID="repeater" runat="server" OnItemDataBound="repeater_ItemDataBound">
<ItemTemplate>
  <asp:Repeater ID="child" runat="server">
    <ItemTemplate>
      .....
    </ItemTemplate>
  </asp:Repeater>
</ItemTemplate>
</asp:Repeater>

---------------------------
aspx.cs
protected void repeater_ItemDataBound(object sender, RepeaterItemEventArgs e)
    {
        if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
        {
          IList<Order> orderList=(IList<Order>)repeater.DataSource;
Repeater rep = (Repeater)e.Item.FindControl("child");
rep.DataSource=
orderList.ProductList;
rep.DataBind();
        }
    }