void  creat_node(string
name,Microsoft.Web.UI.WebControls.TreeNode  t1,string  number)
        {
            //定义一个新的结点            Microsoft.Web.UI.WebControls.TreeNode  t2=new
Microsoft.Web.UI.WebControls.TreeNode();
            t2.ID=number;
            t2.Text=name;
            //判断是否为根结点
            TreeView1.ExpandedImageUrl="images/Depart03.bmp";
            if(t1.ID.Trim()=="###")
            {
                TreeView1.Nodes.Add(t2);
                t2.ImageUrl="images/Depart01.bmp";
            }
            else
            {
                t1.Nodes.Add(t2);
                   t2.ImageUrl="images/Depart01.bmp";
                t1.ImageUrl="images/Depart02.bmp";
            }
            //取得这个结点的所有子结点,利用递归自动生成
            string mySelectQuery = "SELECT ParentID, ID,Name FROM table1
where  ParentID='" + number +"'";
            string MyConnString="provider=Microsoft.Jet.OLEDB.4.0;Data
Source="+Server.MapPath(".")+"/dt/mydata.mdb";
            OleDbConnection myConnection = new
OleDbConnection(MyConnString);
            OleDbCommand myCommand = new
OleDbCommand(mySelectQuery,myConnection);
            myConnection.Open();
            OleDbDataReader myReader;
            myReader = myCommand.ExecuteReader();
            while (myReader.Read())
            {
                creat_node(myReader.GetString(2),t2,myReader.GetString(1));            }
            myReader.Close();
            myConnection.Close();        }    private void CreateProviderTreeBtn_Click(object sender,
System.EventArgs e)
        {
            Microsoft.Web.UI.WebControls.TreeNode  t1=new
Microsoft.Web.UI.WebControls.TreeNode();
            creat_node("",t1,"###");

解决方案 »

  1.   

    Tableid
    parentid
    context
    depth
    imageprivate void Page_Load(object sender, System.EventArgs e)
    {
    // Put user code to initialize the page here
    if (IsPostBack==false)
    {
    this.sqlDataAdapter1.Fill(this.dataSet11);
    TreeNode rootNode=new TreeNode();
    AddTree(1,null);
    }
    }// 递归添加树的节点
    public void AddTree(int ParentID, TreeNode pNode) 
    {
    DataView dvTree = new DataView(this.dataSet11.Tables[1]);
    //过滤ParentID,得到当前的所有子节点
    dvTree.RowFilter =  "[PARENTID] = " + ParentID;
    foreach(DataRowView Row in dvTree) 
    {
    TreeNode Node=new TreeNode() ;
    if(pNode == null) 
    {    //添加根节点
    TreeView1.Nodes.Add(Node);
    Node.Expanded = false;

    else 
    {   //添加当前节点的子节点
    pNode.Nodes.Add(Node);
    Node.Expanded = false;
    }
    Node.Text = Row["context"].ToString();
    AddTree(Int32.Parse(Row["id"].ToString()), Node);//递归
    Node.Target = "frright";
    Node.NavigateUrl = Row["depth"].ToString();
    Node.ImageUrl = Row["image"].ToString() ;
    Node.ExpandedImageUrl = Row["image"].ToString();
    }                   
    }
      

  2.   

    public void CreateNode()
    {
    string strSql;
    strSql="";//找到根目录的sql
    DataSet ds=new DataSet();
    ds=conn.GetDs(strSql); DataRow [] drs=ds.Tables[0].Select("");
    foreach(DataRow r in drs)
    {
    TreeNode root=new TreeNode();
    root.Text=r["lbmc"].ToString();
    root.NodeData=r["id"].ToString();
    //root.Target="MainFrame";
    TreeView1.Nodes.Add(root);
    string rId=r["id"].ToString();
    Child(root,rId);

    }
    }
    //寻找子结点
    public void Child(TreeNode root,string rId)
    {
    string strSql;
    strSql="";//找到子目录的sql
    DataSet ds=new DataSet();
    ds=conn.GetDs(strSql);

    DataRow [] drsr=ds.Tables[0].Select("id="+lbbh);
    foreach(DataRow r in drsr)
    {
    TreeNode cRoot=new TreeNode();
    cRoot.Text=r["lbmc"].ToString();
    cRoot.NodeData=r["lbbh"].ToString();
    //cRoot.Target="MainFrame";
    //cRoot.NavigateUrl="MainList?BIG="+r["big_id"].ToString()+"&SID="+r["small_id"].ToString();
    root.Nodes.Add(cRoot);

    } }
      

  3.   

    private void InitTV()
    {
    SqlDataReader dr;
    SqlCommand myCommand;
    string strSel = "select * from ctm_dptlist order by  len(vieworder),VIEWORDER";
    myCommand = new SqlCommand (strSel, myConnection);            
    myConnection.Open();
    dr=myCommand.ExecuteReader();
    while (dr.Read ())
    {
    TreeNode tnCurrent = new TreeNode ();
    tnCurrent.Text = dr["dptname"].ToString();
    string sViewOrder = dr["ViewOrder"].ToString();
    tnCurrent.ID = sViewOrder;
    if (sViewOrder.Length>2)
    {
    TreeNodeCollection tncParent = TreeView1.Nodes;
    for (int i=1;i<=((sViewOrder.Length-2)/2);i++)
    {
    for (int j=0;j<tncParent.Count;j++)
    {
    if (tncParent[j].ID==sViewOrder.Substring(0,i*2))
    {
    tncParent = tncParent[j].Nodes;
    break;
    }
    }
    }
    tncParent.Add(tnCurrent);
    }
    else
    TreeView1.Nodes.Add(tnCurrent);
    }
    dr.Close ();
    myConnection.Close();
    }