seeHierarchical Data and the ASP.NET DataGrid
http://www.dotnetjunkies.com/Tutorial/841522C9-FFBD-4C57-BD48-F62B55057FF3.dcikUsing Nested DataGrids in ASP.NET
http://www.codeguru.com/Csharp/.NET/net_data/datagrid/article.php/c5619

解决方案 »

  1.   

    把另外一个grid放在div里然后show出来
      

  2.   

    http://www.developer.com/net/vb/article.php/2228761http://search.csdn.net/search.asp?key=DataGrid%C7%B6%CC%D7&pre=DataGrid%C7%B6%CC%D7&option=nmlres&result=normal&page=1&size=10&x=27&y=5
      

  3.   

    建一个模板,添加datagrid控件。
    具体见孟子E章:
    http://dotnet.aspx.cc/ShowDetail.aspx?id=149E5DD7-3B32-461e-ACC6-51D1652E6746
      

  4.   

    <%@ Control Language="c#" AutoEventWireup="false" Codebehind="DepartmentControl.ascx.cs" Inherits="web.DepartmentControl" TargetSchema="http://schemas.microsoft.com/intellisense/ie5" %>
    <%@ Import namespace="System.Data"%>
    <%@ OutputCache Duration="500000" VaryByParam="None" %>
    <script language="javascript">
    function showHide(div) {
    oDiv = document.getElementById(div);
    if (oDiv.style.display == 'none') {
    oDiv.style.display = 'block';
    } else {
    oDiv.style.display = 'none';
    }
    }
    </script>
    <asp:DataGrid id="DepartmentDataGrid" runat="server" AutoGenerateColumns="False" BorderWidth="0" Width="100%" showheader="false" >
    <ItemStyle CssClass="top" />
    <ItemStyle CssClass="toptr2"></ItemStyle>
    <Columns>
    <asp:TemplateColumn ItemStyle-VerticalAlign="Top" ItemStyle-Width="100%">
    <ItemTemplate>
    <table width="100%">
    <tr >
    <td>
    <A onClick="showHide('orders_<%# DataBinder.Eval(Container.DataItem, "DepartmentId") %>')" >
        <img src="img\plus.gif">&nbsp;<%# DataBinder.Eval(Container.DataItem, "DepartmentName") %>
    </A>
    </td>

    </tr>

    <tr  id='orders_<%# DataBinder.Eval(Container.DataItem, "DepartmentId") %>' style="display:none" align="center" >
    <td align="right">
    <asp:DataGrid runat="server" AutogenerateColumns="False" Width="100%" BorderWidth="0" DataSource='<%# ((DataRowView)Convert.ChangeType(Container.DataItem, typeof(DataRowView))).CreateChildView("OrderRelation")  %>' ID="Datagrid1" ShowHeader="False">
    <ItemStyle CssClass="blackw" />
    <Columns>
    <asp:TemplateColumn>
    <ItemStyle HorizontalAlign="Center"></ItemStyle>
    <ItemTemplate>
    <IMG SRC="img\sub.GIF">
    </ItemTemplate>
    </asp:TemplateColumn>
    <asp:HyperLinkColumn Target="_blank" DataNavigateUrlField="CategoryId" DataNavigateUrlFormatString="..\ProductByParam.aspx?CategoryId={0}" DataTextField="CategoryName"></asp:HyperLinkColumn>
    </Columns>
    </asp:DataGrid>
    </td>
    </tr>
    </table>
    </ItemTemplate>
    </asp:TemplateColumn>
    </Columns>
    </asp:DataGrid>
      

  5.   

    namespace web
    {
    using System;
    using System.Data;
    using System.Drawing;
    using System.Web;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;
    using System.Data.SqlClient;
    using ShopClass;
    using System.Configuration;
     
    /// <summary>
    /// DepartmentControl 的摘要说明。
    /// </summary>
    public class DepartmentControl : System.Web.UI.UserControl
    {
    protected System.Web.UI.WebControls.DataGrid DepartmentDataGrid;
    protected System.Web.UI.WebControls.DataGrid CategoryDataGrid;
    private void Page_Load(object sender, System.EventArgs e)
    {
    // 在此处放置用户代码以初始化页面
    if(!Page.IsPostBack) 
    {
    BindData();
    }
    }
    protected void BindData() 
    {
     
                string strConn = ConfigurationSettings.AppSettings["strConnection"];
                SqlConnection conn=new SqlConnection(strConn);
        DataSet ds=new DataSet();
    SqlDataAdapter da=new SqlDataAdapter("select * from Department;select * from Category", conn);
    da.Fill(ds);
    ds.Tables[0].TableName = "department" ;
                ds.Tables[1].TableName = "category" ;
                DataColumn Parent = ds.Tables["department"].Columns["DepartmentId"] ;
    DataColumn Child = ds.Tables["category"].Columns["DepartmentId"] ;
                DataRelation OrderRelation  = new DataRelation("OrderRelation", Parent, Child,false);
                ds.Relations.Add(OrderRelation) ;
    DepartmentDataGrid.DataSource=ds.Tables["department"].DefaultView;
    DepartmentDataGrid.DataBind();

    }
     
    #region Web 窗体设计器生成的代码
    override protected void OnInit(EventArgs e)
    {
    //
    // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
    //
    InitializeComponent();
    base.OnInit(e);
    }

    /// <summary>
    /// 设计器支持所需的方法 - 不要使用代码编辑器
    /// 修改此方法的内容。
    /// </summary>
    private void InitializeComponent()
    {
    this.Load += new System.EventHandler(this.Page_Load); }
    #endregion
    }
    }