http://www.wimdows.net/articles/printme.aspx?aid=19
Displaying Hierarchical data with the ASP.NET Data Grid

解决方案 »

  1.   

    父子表关心的显示。本身就有这样的功能。
    myConntion=new SqlConnection(connString);
    myConntion.Open();

    //Create DataSet
    myDataSet=new DataSet();
    myDataSet.CaseSensitive=true;

    //First table
    myCommand=new SqlCommand();
    myCommand.Connection=myConntion;
    myCommand.CommandText="select * from customers";
    DataAdapter=new SqlDataAdapter();
    DataAdapter.SelectCommand=myCommand;
    DataAdapter.TableMappings.Add("Table","customers");
    DataAdapter.Fill(myDataSet); //Second table
    myCommand2=new SqlCommand();
    myCommand2.Connection=myConntion;
    myCommand2.CommandText="select * from orders";
    DataAdapter2=new SqlDataAdapter();
    DataAdapter2.SelectCommand=myCommand2;
    DataAdapter2.TableMappings.Add("Table","orders");
    DataAdapter2.Fill(myDataSet); //Create table relation
                    DataRelation dataRelation;
    DataColumn dataColumn1;
    DataColumn dataColumn2;
    dataColumn1=myDataSet.Tables["customers"].Columns["customerID"];
    dataColumn2=myDataSet.Tables["orders"].Columns["customerID"];
    dataRelation=new DataRelation("CustomerToOrders",dataColumn1,dataColumn2); //Add relation to DataSet
    myDataSet.Relations.Add(dataRelation);
    DataViewManager DataSetView=myDataSet.DefaultViewManager;
    dataGrid1.DataSource=DataSetView;
    dataGrid1.DataMember="customers";
      

  2.   

    谢谢各位,不过这个列表的header应该怎么解决?
      

  3.   

    SqlConnection sqlcon = WSConnection.GetConnection();
    DataSet ds = new DataSet();
    SqlDataAdapter myAdapter = new SqlDataAdapter(str,sqlcon);
    myAdapter.Fill(ds);
    ds.Tables[0].TableName = "EngineerTable";
    ds.Tables[1].TableName = "EngineerRecordTable";
    DataColumn dcEngineer = ds.Tables[0].Columns["Engineer"];
    DataColumn dcEngineer1 = ds.Tables[1].Columns["Engineer1"];
    DataColumn dcEngineer2 = ds.Tables[1].Columns["Engineer2"];
    DataRelation dr = new DataRelation("EngineerRelation",dcEngineer,dcEngineer1);
    DataRelation dr2 = new DataRelation("EngineerRelation1",dcEngineer,dcEngineer2);
    ds.Relations.Add(dr);
    ds.Relations.Add(dr2);
    this.DataGrid_ApplyManage.DataSource = ds.Tables["EngineerTable"].DefaultView;
    this.DataGrid_ApplyManage.DataBind();上面是我的代码。<asp:TemplateColumn>
    <ItemTemplate>
    <asp:DataGrid id="DataGrid_InAM" runat="server" AutoGenerateColumns="False" DataSource='<%# CType(Container.DataItem,DataRowView).CreateChildView("dr") %>'>
    <Columns>
    <asp:HyperLinkColumn DataTextField="projectname"></asp:HyperLinkColumn>
    <asp:BoundColumn DataField="BeginTime"></asp:BoundColumn>
    <asp:BoundColumn DataField="EndTime"></asp:BoundColumn>
    <asp:BoundColumn DataField="TimeSer"></asp:BoundColumn>
    <asp:BoundColumn DataField="Content"></asp:BoundColumn>
    </Columns>
    </asp:DataGrid>
    </ItemTemplate>
    </asp:TemplateColumn>
    在页面中的绑定应该如何写?这样写是会报错的
      

  4.   

    你的b表的字段是活的,但列数是定的吧?
    添加了这些模板列后使用后绑定:'<%# DataBinder.Eval(Container.DataItem,"yhm") %>'