zoukankan      html  css  js  c++  java
  • C# TreeView 中递归生成树(二)

    有时候的树结构更复杂,层数多,可能不止在一个表中查询。如一个项目中的树结构:

    层数不固定,最后的树叶层时从不同的表中查询得到。

    先利用了上一篇中生成树的方法:表中的结构和上篇中的机构基本相同。

    private void CreateTree(TreeNode PNode, int traceCode)
            {
                string strSql = "select treecode,treename from TraceTree where ptreecode = " + traceCode;
                DataTable dt = SqlClass.GetTable(strSql);
                if (traceCode == -1)
                {
                    PNode.Text = dt.Rows[0]["treename"].ToString();
                    PNode.Tag = "R" + dt.Rows[0]["treecode"].ToString();
                    tvwTest.Nodes.Add(PNode);
                    CreateTree(PNode, Convert.ToInt32(dt.Rows[0]["treecode"].ToString()));
                }
                else
                {
                    if (dt.Rows.Count != 0)
                    {
                        for (int i = 0; i < dt.Rows.Count; i++)
                        {
                            TreeNode node = new TreeNode();
                            node.Text = dt.Rows[i]["treename"].ToString();
                            node.Tag = "P" + dt.Rows[i]["treecode"].ToString();
                            ///////////////AddPro(node, Convert.ToInt32(dt.Rows[i]["treecode"].ToString())); // 注释添加叶子函数
                            CreateTree(node, Convert.ToInt32(dt.Rows[i]["treecode"].ToString()));
                            PNode.Nodes.Add(node);
                        }
                    }
                }
    
            }
    

      生成树:

     和要求得到的树机构差不多了,只是差叶子节点。

    添加了 private void AddPro(TreeNode node, int treeCode) // 加载树叶  函数,在添加除了根节点以外的其它节点前,添加这个节点对应的叶子。如上注释代码。

  • 相关阅读:
    IT小小鸟读后感
    关于C语言的问卷调查
    (学习进度表)【第六周】
    (学习进度表)【第五周】
    作业二(过早的放弃是失败的根源)
    读《世界是数字的》笔记
    作业3(学习进度表)【第四周】
    作业1
    读《我是一只IT小小鸟》笔记
    价值观作业
  • 原文地址:https://www.cnblogs.com/igoogleyou/p/treeview22.html
Copyright © 2011-2022 走看看