日期:2014-05-18  浏览次数:20401 次

Repeater 嵌套的问题
有一个商品订单的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
……



------解决方案--------------------
不一定用欠套吧,你可以在鼠标移动到某个订单时,弹出一个悬浮的DIV 来显示商品列表嘛
------解决方案--------------------
嵌套就嵌套啦

<repeater>
 <itemtemplate>
用户名:<%# Eval("X") %>
运送地址:<%# Eval("X") %>
产品列表:<%# Eval("X") %>
<repeater>
<itemtemplate>
产品<%# Eval("X") %>////楼主是不是在这里不知道绑定谁?怎么绑定了? 因为数据源不定?
</itemtemplate>
</repeater> 
 </itemtemplate>
</repeater>
------解决方案--------------------
给你一个实例吧 照着做即可,我这里的Repeater1 中嵌套了RadioButtonList 

注意用到了 DataSource='<%# ((System.Data.DataRowView)Container.DataItem).CreateChildView("myrelation") %>'

做嵌套记录集,

后台注意
ds.Relations.Add("myrelation",
ds.Tables["questions"].Columns["id"],
ds.Tables["answers"].Columns["questionsid"]);

//Bind the Authors table to the parent Repeater control, and call DataBind.
Repeater1.DataSource = ds.Tables["questions"];
Page.DataBind();


建立父子关系

HTML code



 <asp:Repeater ID="Repeater1" runat="server" OnItemDataBound="Repeater1_ItemDataBound">
            <HeaderTemplate>
            </HeaderTemplate>
            <ItemTemplate>
                <a>
                    <%#Container.ItemIndex + 1%>
                    .</a><asp:Label ID="Label1" runat="server" Text='<%# Eval("subject") %>'></asp:Label>
                <a>
                    <asp:RadioButtonList runat="server" ID="rblsss" RepeatLayout="Table" RepeatDirection="Horizontal"
                        DataSource='<%# ((System.Data.DataRowView)Container.DataItem).CreateChildView("myrelation") %>'>
                        
                    </asp:RadioButtonList>
                </a>
            </ItemTemplate>
            <AlternatingItemTemplate>
                <a>
                    <%#Container.ItemIndex + 1%>
                    .</a><asp:Label ID="Label1" runat="server" Text='<%# Eval("subject") %>'></asp:Label>
                <asp:RadioButtonList runat="server" ID="rblsss" RepeatLayout="Table" RepeatDirection="Horizontal"
                    DataSource='<%# ((System.Data.DataRowView)Container.DataItem).CreateChildView("myrelation") %>'>
                    
                </asp:RadioButtonList>
                </a>
            </AlternatingItemTemplate>
            <SeparatorTemplate>
                <br />
            </SeparatorTemplate>
            <FooterTemplate>
            </FooterTemplate>
        </asp:Repeater>

------解决方案--------------------
关键就是这一段