我想在datagrid嵌套DATALIST,datagrid用来分页,DATALIST用来输出

解决方案 »

  1.   

    <asp:datagrid id="DtgPro" style="Z-INDEX: 101; LEFT: 192px; POSITION: absolute; TOP: 144px" runat="server"
    AutoGenerateColumns="False" AllowPaging="True" PageSize="1" GridLines="Horizontal">
    <Columns>
    <asp:BoundColumn DataField="ProID" HeaderText="专业编号"></asp:BoundColumn>
    <asp:BoundColumn DataField="ProName" HeaderText="专业名称"></asp:BoundColumn>
    <asp:TemplateColumn>
    <ItemTemplate>
    <table>
    <tr>
    <td>
    <asp:DataList ID="DtlStu" Runat="server">
    <ItemTemplate>
    <table>
    <tr>
    <td><%# DataBinder.Eval(Container.DataItem,"StuName")%></td>
    <td><%# DataBinder.Eval(Container.DataItem,"StuSex")%></td>
    </tr>
    </table>
    </ItemTemplate>
    </asp:DataList></td>
    </tr>
    </table>
    </ItemTemplate>
    </asp:TemplateColumn>
    </Columns>
    </asp:datagrid>CS: 
    private new void DataBind()
    {
    SelectDb _selectdb=new SelectDb();
    DataSet ds=_selectdb.ProList();
    this.DtgPro.DataSource=ds;
    this.DtgPro.DataBind();
    for(int i=0;i<this.DtgPro.Items.Count;i++)
    {
    DataList myDtl=new DataList();
    myDtl=(DataList)this.DtgPro.Items[i].FindControl("DtlStu");
    string ProID=DtgPro.Items[i].Cells[0].Text.ToString();
    DataSet ds2=_selectdb.StuList(ProID);
    Response.Write(ProID);
    myDtl.DataSource=ds2;
    myDtl.DataBind();

    }
      

  2.   

    http://dotnet.aspx.cc/ShowDetail.aspx?id=54F4C732-AAE2-4135-FB1B-7B4B613BAA33
    利用Repeater控件显示主-从关系数据表 
    作者:Microsoft 出自:http://support.microsoft.com/ 发布日期:2004年6月11日 8点48分47秒 
    原理是一样的