无限制分级显示树型结构的DataGrid。
数据库结构:
code,name
1001 zh 
1002 df
100101 dg
100102 fg
100201 fd
10010101 op
1003    oi
datagrid:
code      name   
1001       zh
 100101    dg
  10010101 op
 100102    fg
1002       df
 100201    fd
1003       oi请问各位应该如何实现?谢谢!

解决方案 »

  1.   

    用嵌套绑定啊!!用一个模板列,里面放datagrid就可以实现了
      

  2.   

    http://community.csdn.net/Expert/topic/3841/3841044.xml?temp=.2635767
      

  3.   

    是 WinForm 还是 web 的?
    你是要在前面加 空格 还是真树形????还有 1段编码定长 4 位吗
         2段编码定长 3 位吗
         3段编码定长 2 位吗具体编码规则?
      

  4.   

    to  FlashElf(銘龘鶽) :
    是web,加空格!谢谢
      

  5.   

    用控件netadvantage的infragistics,
      

  6.   

    感谢大家!特别感谢hansonsu(su)我已经实现了,现在把代码整理后发出来。public void GetData()
    {
    // Create new DataTable and DataSource objects.
    DataTable myDataTable = new DataTable();
    // Declare DataColumn and DataRow variables.
    DataColumn myColumn;
    DataRow myRow; 
    // Create new DataColumn, set DataType, ColumnName and add to DataTable.    
    myColumn = new DataColumn();
    myColumn.DataType = System.Type.GetType("System.String");
    myColumn.ColumnName = "code";
    myDataTable.Columns.Add(myColumn);
    // Create second column.
    myColumn = new DataColumn();
    myColumn.DataType = Type.GetType("System.String");
    myColumn.ColumnName = "name";
    myDataTable.Columns.Add(myColumn);myColumn = new DataColumn();
    myColumn.DataType = Type.GetType("System.Int32");
    myColumn.ColumnName = "id";
    myDataTable.Columns.Add(myColumn);DataSet ds= ***** //设置DataSet  查找所有的第一级// Create new DataRow objects and add to DataTable.    
    for(int i = 0; i < ds.Tables[0].Rows.Count; i++)
    {
    myRow = myDataTable.NewRow(); 
    myRow["id"] = ds.Tables[0].Rows[i]["id"].ToString();
    myRow["code"] = ds.Tables[0].Rows[i]["code"].ToString();
    myRow["name"] = ds.Tables[0].Rows[i]["name"].ToString();
    myDataTable.Rows.Add(myRow);ShowData(myDataTable,ds.Tables[0].Rows[i]["id"].ToString());
    }
    }
    public void ShowData(DataTable dt,int parentId)
    {
    DataView dv=new DataView();
    DataSet dsTree  ****//查找所有的子节点
    dv.Table=dsTree.Tables[0];        //将查询结果放入dv中
    foreach(DataRowView drv in dv)
    {
    myRow = dt.NewRow();
    myRow["code"] = drv["code"].ToString();
    myRow["name"] = drv["name"].ToString();
    dt.Rows.Add(myRow);                ShowData(dt,drv["id"].ToString());
    }
    }
    dg.DataSource = dt.DefaultView;
    dg.DataBind();
    }