控件:<div style="text-align:center">
        <asp:Repeater ID="Repeater" runat="server">
        <ItemTemplate>
            <table border="1">
              <tr><td><%#Eval("name") %> </td></tr>
              <tr>
             <td>
                <asp:GridView ID="GridView" DataSource='<%#((System.Data.DataRowView)Container.DataItem).CreateChildView("dr") %>' runat="server" AutoGenerateColumns="False" BackColor="White" BorderColor="#999999" BorderStyle="Solid" BorderWidth="1px" CellPadding="3" ForeColor="Black" GridLines="Vertical">
                    <Columns>
                        <asp:BoundField DataField="name" HeaderText="名称" ItemStyle-Width="200"/>
                        <asp:BoundField DataField="price" DataFormatString="{0}¥" HeaderText="价格" ItemStyle-Width="200"/> 
                    </Columns> 
                    <FooterStyle BackColor="#CCCCCC" />
                    <SelectedRowStyle BackColor="#000099" Font-Bold="True" ForeColor="White" />
                    <PagerStyle BackColor="#999999" ForeColor="Black" HorizontalAlign="Center" />
                    <HeaderStyle BackColor="Black" Font-Bold="True" ForeColor="White" />
                    <AlternatingRowStyle BackColor="#CCCCCC" />
                  </asp:GridView>
                  </td> 
              </tr> 
            </table> 
        </ItemTemplate> 
        </asp:Repeater> 
    </div>数据绑定:string sql = "select * from type;select * from product";
            DataSet ds = da.GetDataSet(sql);
            DataRelation dr = new DataRelation("dr", ds.Tables[0].Columns["id"], ds.Tables[1].Columns["type"]);
            ds.Relations.Add(dr);
            this.Repeater.DataSource = ds.Tables[0];
            this.Repeater.DataBind();显示效果:

解决方案 »

  1.   

    你用datalist嵌套看看  
      

  2.   

    用 datalist嵌套gridview 数据绑定 
      

  3.   

    老大的bloghttp://blog.csdn.net/net_lover/archive/2006/12/10/1437535.aspx
      

  4.   

    Repeater嵌套一样可以实现的……
      

  5.   

    经过测试的,改下你的字段、表和提取数据方法即可。
    前台:
    <asp:Repeater ID="Repeater1" runat="server" DataSourceID="SqlDataSource1" OnItemDataBound="Repeater1_ItemDataBound">
            <ItemTemplate>
               id:<%#Eval("ID")%>
               carid:<%#Eval("car_id")%>
               <asp:GridView ID="inGridView" runat="server" AutoGenerateColumns="False">
                <Columns>
                    <asp:BoundField DataField="ID" HeaderText="ID" InsertVisible="False" ReadOnly="True"
                        SortExpression="ID" />
                    <asp:BoundField DataField="name1" HeaderText="name1" SortExpression="name1" />
                    <asp:BoundField DataField="sex" HeaderText="sex" SortExpression="sex" />
                    <asp:BoundField DataField="qu" HeaderText="qu" SortExpression="qu" />
                </Columns>
            </asp:GridView>
               userid:<%#Eval("userID")%>
            </ItemTemplate>
            </asp:Repeater>后台:
    protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
            {
                GridView gridview = (GridView)e.Item.FindControl("inGridView");
                DataRowView rowv = (DataRowView)e.Item.DataItem;
                string id = Convert.ToString(rowv["car_id"]);//Repeater1中绑定中的数据,也即主表上和子表的关联字段
                if (id != null && id != "")
                {
                    string sqltext = "select top 5 id,name1,sex,qu from second where id='" + id + "'";
                    DataSet ds = datacontrol.getdatas(sqltext);//获取从数据,这里是我的数据提取类,换成你自己的数据提取方法
                    if (ds != null)
                    {
                        try
                        {
                            gridview.DataSource = ds;
                            gridview.DataBind();
                        }
                        catch (Exception ex)
                        {
                            throw new Exception(ex.Message);
                        }
                    }
                }        }
      

  6.   

    也可使用gridview嵌套gridview
     e.Item.FindControl("gridview1") as GridView
      

  7.   

    路过,接分
    我记得看得最早的是孟子的一篇文章里的实现,VB和c#两个版本的