ID dirname parentid
1 供应链 0
2 基本信息 0
3 采购管理 1
4 工程管理 1
5 检验管理 1
6 库存管理 1
7 销售管理 1
8 目录 2
9 权限 2
10 用户 2
以上是表目录.要求用递归写一个TREE目录,我想破头,也不知道如何写,请帮忙呀.万分感谢.

解决方案 »

  1.   

    http://blog.csdn.net/zgke/archive/2008/11/29/3408133.aspx 这个对你应该有帮助
      

  2.   

    Father  Boy
    ""      供应链
    ""      基本信息
    基本信息 目录
    基本信息 权限
    基本信息 用户
    供应链     采购管理
    供应链     工程管理
    供应链     检验管理
    供应链     库存管理
    供应链     销售管理生成以上表,然然用treeview自动绑定就行了.
      

  3.   

    Hashtable hashNodes = new Hashtable(); 
    foreach (ParameterValues parm in parameterValues) 
                { 
                    TreeNode node = new TreeNode(parm.ValueName); 
                    node.Name = parm.ValueID.ToString(); 
                    node.Tag = parm.ParentValueID; 
                    node.ImageIndex = 2; 
                    node.SelectedImageIndex = 2; 
                    hashNodes.Add(node.Name, node); 
                } 
                foreach (TreeNode node in hashNodes.Values) 
                { 
                    if (node.Tag.ToString() == "0") 
                    {                     sortCustomerTreeView.Nodes[0].Nodes.Add(node); 
                    } 
                    else 
                    { 
                        TreeNode parent = (TreeNode)hashNodes[node.Tag.ToString()]; 
                        parent.ImageIndex = 0; 
                        parent.SelectedImageIndex = 0; 
                        if (parent != null) 
                        { 
                            parent.Nodes.Add(node); 
                        } 
                        else 
                        { 
                            throw new ArgumentException("节点的值" + Convert.ToString(node.Tag) + "不存在!"); 
                        } 
                    } 
                } 
                nodeOne.Expand(); 
                hashNodes.Clear(); 
            } 也可以使用Dictionary
      

  4.   

    我看得不太懂,Hashtable 是不是哈希表,还有ParameterValues 是什么,看不懂
      

  5.   

    http://user.qzone.qq.com/66970551/blog/1251256069http://user.qzone.qq.com/66970551/blog/1251252643个人日志里有.
      

  6.   

    // 递归添加树的节点
    public void AddTree(int ParentID,TreeNode pNode) 
    {
    DataView dvTree = new DataView(ds.Tables[0]);
    //过滤ParentID,得到当前的所有子节点
    dvTree.RowFilter =  "[PARENTID] = " + ParentID;
    foreach(DataRowView Row in dvTree) 
    {
    if(pNode == null) 
    {    //'̀添加根节点
    TreeNode Node = treeView1.Nodes.Add(Row["ConText"].ToString());
    AddTree(Int32.Parse(Row["ID"].ToString()),Node);    //再次递归

    else 
    {   //添加当前节点的子节点
    TreeNode Node =  pNode.Nodes.Add(Row["ConText"].ToString());
    AddTree(Int32.Parse(Row["ID"].ToString()),Node); //再次递归
    }
    }
    }
    这个固然是写得很好,我怎么看不到出口,我感觉这个递归函数没有出口,好奇怪.
      

  7.   

    http://www.microsoft.com/china/community/Column/21.mspx 这个是原文章,高人帮忙看一下,出口在那里,还有AddTree(0, (TreeNode)null);怎么可以这样子调用函数呢,看不懂这个(TreeNode)null
      

  8.   


    精略地看了一下,貌似VB6的代码,VB6与.NET的Treeview控件差异是比较大的,建议楼主看看这两个:
    http://user.qzone.qq.com/66970551/blog/1251256069 http://user.qzone.qq.com/66970551/blog/1251252643 
    我自认为我自己还是收录和比较了几种方法的.
      

  9.   

    如果是ORACLE就可以用那个CONNECT BY ....
    一个语句搞顶,如果是SQL就多写几个循环了。