DataList2 (绑定DataSource2) 嵌套在 DataList1 (绑定DataSource1) 里面 两个表 里面有一个相同的 C_ID 字段问题:怎么实现页面中 DataList2 通过检索 DataList1显示在页面上的 C_ID 来显示数据标题A(DataList1显示)
aaaaaaa(DataList2显示)
aaaaaaa(DataList2显示)
aaaaaaa(DataList2显示)标题B(DataList1显示)
bbbbbbb(DataList2显示)
bbbbbbb(DataList2显示)
bbbbbbb(DataList2显示)大概图上面这样显示

解决方案 »

  1.   

    <asp:Repeater ID="rpt1" runat="server"  OnItemDataBound="rpt1_ItemDataBound">
            <ItemTemplate>
                <tr>
                    <td>&nbsp;</td>
                    <td><b><%#Eval("AreaName") %></td>
                    <td style="text-align:center"><%#Eval("AreaNo") %></td><td><%#Eval("Kuozhanyinzi") %></td>
                    <td style="text-align:center"><%#Eval("DevelopType") %></b>&nbsp;</td>
                    <td style="text-align:center"><a href="Areaedit.aspx?areano=<%#Eval("AreaNO")%>">编辑</a>&nbsp;&nbsp; <%# "<a onclick=\"return confirm('您确定要删除 ?')\" href='?areanodelete=" + Eval("areano") + "&keyname=" + Request["keyname"] + "'>删除</a>"%></td>
                </tr>
                <tr >
                <td >
                    <asp:Repeater ID="rpt2" runat="server">
                        <ItemTemplate>
                            <tr >
                                <td ><%#isum++  %></td>
                                <td style="text-align:left" >&nbsp;&nbsp;&nbsp;<a href="VillageList.aspx?areano=<%#Eval("AreaNO")%>"><%#Eval("AreaName")%></a></td>
                                <td ><%#Eval("AreaNo") %></td><td><%#Eval("Kuozhanyinzi") %></td><td ><%#Eval("DevelopType") %></td>
                                <td ><a href="Areaedit.aspx?areano=<%#Eval("AreaNO")%>">编辑</a>&nbsp;&nbsp; <%# "<a onclick=\"return confirm('您确定要删除 ?')\" href='?areanodelete=" + Eval("areano") + "&keyname=" + Request["keyname"] + "'>删除</a>"%></td>
                            </tr>
                        </ItemTemplate>
                </asp:Repeater>
                </td>
            </tr>
            </ItemTemplate>
            </asp:Repeater>
    //首先绑定rpt1,在rpt1的ItemDataBound事件中
        protected void rpt1_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            Repeater rpt2 = (Repeater)e.Item.FindControl("rpt2");
            DataRowView dr = (DataRowView)e.Item.DataItem;//获取rpt的视图
            Wind.BLL.Fish.AreaInfo bll = new Wind.BLL.Fish.AreaInfo();
            string strWhere = " right(areano,6)='000000' and right(left(areano,6),2)<>'00' ";
            strWhere = strWhere + "and left(areano,4)= left(" + dr["areano"] + ",4) order by areano";
    //dr["areano"] 是根据rpt1获取的值,可以是rpt1中绑定的任意列
            rpt2.DataSource = bll.GetList(strWhere);
            rpt2.DataBind();