• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

C#TreeView中递归生成树(二)

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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

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

 

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

 

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) // 加载树叶  函数,在添加除了根节点以外的其它节点前,添加这个节点对应的叶子。如上注释代码。

 

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
PCB挺有意思的基数排序----C#代码实现发布时间:2022-07-10
下一篇:
c#string.Concat的使用发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap