比如说我的数据库TB_myBM表中有这么几个字段  
  id(int自动增长的) name(varchar)  
  1 部门 001   
  2 技术部 001001  
  3 市场部 001002  
  4 技术1部 001001001  
  5 技术2部 001001002  
  6 技术3部 001001003  
  7 市场1部 001002001  
  8 市场2部 001002002  
  9 市场3部 001002003  
  10 技术1部1小分部 001001001001
  11 技术1部2小分部 001001001002
    
   
怎么用treeview递归树形绑定达到下面的效果:  
部门  
  技术部  
    技术1部
      技术1部1小分部
      技术1部2小分部
    技术2部  
    技术3部  
  市场部  
    市场1部  
    市场2部  
    市场3部  麻烦各位说清楚点带上后台代码,在此谢谢 

解决方案 »

  1.   


    /// <summary>
            /// 添加树
            /// </summary>
            /// <param name="ParentID"></param>
            /// <param name="pNode"></param>
            protected void AddTree(string ParentID, TreeNode pNode)
            {
                string FuncCode = string.Empty;
                string FuncName = string.Empty;
                string FuncURL = string.Empty;
                string FuncTarget = string.Empty;
                string nSonCount = string.Empty;
                DataView Dv = new DataView(m_Dt);
                Dv.RowFilter = " SubString(FuncCode,1,Len(FuncCode)-2) = '" + ParentID + "'";
                
                foreach (DataRowView Row in Dv)
                {
                    FuncCode = Row["FuncCode"].ToString();
                    FuncName = Row["FuncName"].ToString();
                    FuncURL = Row["FuncURL"].ToString();// 
                    FuncTarget = this.m_FuncTarget;
                    nSonCount = Row["nSonCount"].ToString();
                    TreeNode Node = new TreeNode();
                    Node.SelectAction = TreeNodeSelectAction.Expand;
                     if (FuncURL.IndexOf("?") < 3) FuncURL = FuncURL + "?1=1";
                            FuncURL = FuncURL + "&FuncCode=" + FuncCode + "&FuncName=" + Server.UrlEncode(FuncName);
                            Node.Target = FuncTarget;
                            Node.NavigateUrl = FuncURL;                if (pNode == null)
                    {
                        Node.Text = FuncName;
                        TreeView1.Nodes.Add(Node);                    if (int.Parse(nSonCount) > 0) AddTree(FuncCode, Node);
                    }
                    else
                    {
                        Node.Text = FuncName;
                        pNode.ChildNodes.Add(Node);
                        if (int.Parse(nSonCount) > 0) AddTree(FuncCode, Node);
                    }
                }
                Dv = null;
            }