当前位置:网站首页>c# treeView 树形结构递归处理(企业集团型层次树形展示)
c# treeView 树形结构递归处理(企业集团型层次树形展示)
2022-07-17 12:29:00 【IT技术与企业应用结合的爱好者】
做企业集团的层级展示时候,c#的树形控件尤为重要,如果层级过多,则需要递归处理。
1.这是一个层级表,第一列为单位编码,第二列为单位名称,第三列为上级单位。
| dwbh | dwmc | sjgs |
| A000 | 华美房产集团 | |
| A001 | 华美房产集团 | A000 |
| A002 | 辽宁华美房产公司 | A001 |
| A003 | 安徽华美房产公司 | A001 |
| A004 | 四川华美房产公司 | A001 |
| A005 | 吉林华美房产公司 | A001 |
| A006 | 云南华美房产公司 | A001 |
| A007 | 河南华美房产公司 | A001 |
| A008 | 沈阳华美分公司 | A002 |
| A009 | 合肥华美分公司 | A003 |
| A010 | 大连华美分公司 | A002 |
| A011 | 成都华美分公司 | A004 |
| A012 | 昆明华美分公司 | A006 |
| A013 | 长春环美分公司 | A005 |
| A014 | 沈河房产公司 | A008 |
| A015 | 大东房产公司 | A008 |
| A016 | 铁西房产公司 | A008 |
| A017 | 中山房产公司 | A010 |
2.通过winform的树控件来展示列表。


3.代码(这里为了直观认识,手工加入公司行。在项目实施中则提取数据库的数据。)
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace WindowsFormsApplication4
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
DataTable dt = new DataTable();
dt.Columns.AddRange(new DataColumn[]{
new DataColumn("dwbh",typeof(string)),
new DataColumn("dwmc",typeof(string)),
new DataColumn("sjgs",typeof(string))});
DataRow r = dt.NewRow();
r[0] = string.Format("{0}", "A000");
r[1] = string.Format("{0}", "华美房产集团");
r[2] = string.Format("{0}", "");
dt.Rows.Add(r);
DataRow r0 = dt.NewRow();
r0[0] = string.Format("{0}","A001");
r0[1] = string.Format("{0}", "华美房产集团");
r0[2] = string.Format("{0}", "A000");
dt.Rows.Add(r0);
DataRow r1 = dt.NewRow();
r1[0] = string.Format("{0}","A002");
r1[1] = string.Format("{0}", "辽宁华美房产公司");
r1[2] = string.Format("{0}","A001");
dt.Rows.Add(r1);
DataRow r2 = dt.NewRow();
r2[0] = string.Format("{0}","A003");
r2[1] = string.Format("{0}", "安徽华美房产公司");
r2[2] = string.Format("{0}","A001");
dt.Rows.Add(r2);
DataRow r3 = dt.NewRow();
r3[0] = string.Format("{0}","A004");
r3[1] = string.Format("{0}", "四川华美房产公司");
r3[2] = string.Format("{0}","A001");
dt.Rows.Add(r3);
DataRow r4 = dt.NewRow();
r4[0] = string.Format("{0}","A005");
r4[1] = string.Format("{0}", "吉林华美房产公司");
r4[2] = string.Format("{0}","A001");
dt.Rows.Add(r4);
DataRow r5 = dt.NewRow();
r5[0] = string.Format("{0}","A006");
r5[1] = string.Format("{0}", "云南华美房产公司");
r5[2] = string.Format("{0}","A001");
dt.Rows.Add(r5);
DataRow r6 = dt.NewRow();
r6[0] = string.Format("{0}","A007");
r6[1] = string.Format("{0}", "河南华美房产公司");
r6[2] = string.Format("{0}","A001");
dt.Rows.Add(r6);
DataRow r7 = dt.NewRow();
r7[0] = string.Format("{0}", "A008");
r7[1] = string.Format("{0}", "沈阳华美分公司");
r7[2] = string.Format("{0}", "A002");
dt.Rows.Add(r7);
DataRow r8 = dt.NewRow();
r8[0] = string.Format("{0}", "A009");
r8[1] = string.Format("{0}", "合肥华美分公司");
r8[2] = string.Format("{0}", "A003");
dt.Rows.Add(r8);
DataRow r9 = dt.NewRow();
r9[0] = string.Format("{0}", "A010");
r9[1] = string.Format("{0}", "大连华美分公司");
r9[2] = string.Format("{0}", "A002");
dt.Rows.Add(r9);
DataRow r10 = dt.NewRow();
r10[0] = string.Format("{0}", "A011");
r10[1] = string.Format("{0}", "成都华美分公司");
r10[2] = string.Format("{0}", "A004");
dt.Rows.Add(r10);
DataRow r11 = dt.NewRow();
r11[0] = string.Format("{0}", "A012");
r11[1] = string.Format("{0}", "昆明华美分公司");
r11[2] = string.Format("{0}", "A006");
dt.Rows.Add(r11);
DataRow r12 = dt.NewRow();
r12[0] = string.Format("{0}", "A013");
r12[1] = string.Format("{0}", "长春环美分公司");
r12[2] = string.Format("{0}", "a005");
dt.Rows.Add(r12);
DataRow r13 = dt.NewRow();
r13[0] = string.Format("{0}", "A014");
r13[1] = string.Format("{0}", "沈河房产公司");
r13[2] = string.Format("{0}", "A008");
dt.Rows.Add(r13);
DataRow r14 = dt.NewRow();
r14[0] = string.Format("{0}", "A015");
r14[1] = string.Format("{0}", "大东房产公司");
r14[2] = string.Format("{0}", "A008");
dt.Rows.Add(r14);
DataRow r15 = dt.NewRow();
r15[0] = string.Format("{0}", "A017");
r15[1] = string.Format("{0}", "中山房产公司");
r15[2] = string.Format("{0}", "A010");
dt.Rows.Add(r15);
AddTree("A000", (TreeNode)null, dt);
}
public void AddTree(String ParentID, TreeNode pNode, DataTable table)
{
DataView dvTree = new DataView(table); //dtTree = dsFrame.Tables[0];
string Fstr = "sjgs='" + ParentID + "'";
dvTree.RowFilter = Fstr;
treeView1.ImageList = this.imageList1;
foreach (DataRowView Row in dvTree)
{
TreeNode Node = new TreeNode();
if (pNode == null) //处理主节点
{
Node.Name = Row["dwbh"].ToString();
Node.Text = Row["dwbh"].ToString() + Row["dwmc"].ToString();
if ((Row["dwmc"].ToString()).Contains("华美"))
{
Node.ImageIndex = 0;
Node.SelectedImageIndex = 0;
}
else if ((Row["dwmc"].ToString()).Contains("房产"))
{
Node.ImageIndex = 2;
Node.SelectedImageIndex = 2;
}
treeView1.Nodes.Add(Node);
AddTree(Row["dwbh"].ToString(), Node, table); //递归
}
else //处理子节点
{
Node.Name = Row["dwbh"].ToString();
Node.Text = Row["dwbh"].ToString() + Row["dwmc"].ToString();
if ((Row["dwmc"].ToString()).Contains("华美"))
{
Node.ImageIndex = 0;
Node.SelectedImageIndex = 0;
}
else if ((Row["dwmc"].ToString()).Contains("房产"))
{
Node.ImageIndex = 2;
Node.SelectedImageIndex = 2;
}
pNode.Nodes.Add(Node);
AddTree(Row["dwbh"].ToString(), Node, table);
}
}
}
}
}
边栏推荐
- Three.js基本元素使用
- Analysis of Web Remote Code Execution Vulnerability of Zhongke panyun-d module
- HCIA OSPF
- AsyncLocalStorage 的妙用
- On the structural types of C language
- How to solve the problem of cross domain access by Google browser
- 如何在双链笔记软件中建立仪表盘和知识库?以嵌入式小组件库 NotionPet 为例
- Software engineering - ranking of majors in Chinese Universities of Software Science
- Scala 基础 (三):运算符和流程控制
- 【微信小程序】使出千手浮图—回滚式
猜你喜欢

C# 搭建一个基于.NET5的WPF入门项目

Relationship between standardization, normalization and regularization

JMeter中如何实现接口之间的关联?

Hcip day 1 7.15

Rasa 3. X learning series -rasa version 3.1.5 release

标准化、归一化和正则化的关系
![[Download] take you to use FRP to achieve intranet penetration detailed tutorial!](/img/8c/f3a5dd05966bcb98f24d97e1576a7e.png)
[Download] take you to use FRP to achieve intranet penetration detailed tutorial!

Excel表格转换为Word表格,并且保留Excel表格中公式不发生变化

HCIP 第一天 7.15

LVI-SAM:激光-IMU-相机紧耦合建图
随机推荐
高效理解 FreeSql WhereDynamicFilter,深入了解设计初衷[.NET ORM]
【Makefile】关于makefile使用上的一些备忘
【vulnhub靶场】PRIME:1打靶过程记录
Good news
English grammar_ Personal pronoun usage
[Download] take you to use FRP to achieve intranet penetration detailed tutorial!
智能存储柜控制系统设计及仿真
【分离式超图像分类平台】使用深度学习中那些令人兴奋的模型搭建图像分类平台
C# 搭建一个基于.NET5的WPF入门项目
私钥,公钥的区分——私钥公钥讲解
ty_gr551x 代码框架
发送阻塞,接收阻塞
潇洒郎:VMware固定虚拟机IP地址
上學=掙錢?無需繳納學費的神仙院校!
HCIA rip experiment 7.11
Rasa 3.x 学习系列-Rasa 3.1.5 版本发布
bazel使用教程 转
中职网络安全——(2022网络安全nc批量连接的脚本)免费的脚本哦~~~
2022年湖南省中职组“网络空间安全”赛题解析(超详细)
How to realize the association between interfaces in JMeter?