C# winform中怎么递归生成树
时间:2011-12-12
来源:互联网
数据库中返回为Datatale类型,要生成一个节点树,根据这两个数据信息NodeId,FartherNodeId,生成节点树
作者: y3709180 发布时间: 2011-12-12
递归你会不?
递归你会,这个肯定可以搞定。
“递归加载treeview” 可以搜索下
如果递归你不会 可以给你个代码参考 (估计多余)
C# code
递归你会,这个肯定可以搞定。
“递归加载treeview” 可以搜索下
如果递归你不会 可以给你个代码参考 (估计多余)
C# code
using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Data; using System.Text; using System.Windows.Forms; using 核心类.公用; using 核心类.系统; using 核心类.控件基类; namespace 窗体控件 { public partial class 部门组织结构树控件窗体 : 插件窗体基类 { public 部门组织结构树控件窗体() { InitializeComponent(); } #region 对外属性 public TreeView tvw_部门树 { get{ return this._tvw_部门结构树; } } #endregion #region 自定义方法 public void 初始化结构树() { this._tvw_部门结构树.Nodes.Clear(); //获取组织关系模型类 业务对象模型类 cls_模型类 = 全局环境类.获取模型类("Organ"); 业务对象模型类 cls_关系模型类 = 全局环境类.获取模型类("Organ Tree"); if (cls_模型类 == null || cls_关系模型类 == null) return; List<组织信息类> lst_根部门 = 组织信息类.获取首个组织对象(); if (lst_根部门 == null) return; foreach (组织信息类 cls_根部门信息 in lst_根部门) { TreeNode trn_根节点 = 形成树节点(cls_根部门信息); if (trn_根节点 != null) { trn_根节点.ImageIndex = 0; trn_根节点.SelectedImageIndex = 0; this._tvw_部门结构树.Nodes.Add(trn_根节点); 递归加载组织结构(trn_根节点, cls_模型类, cls_关系模型类, cls_根部门信息); } } } private void 递归加载组织结构(TreeNode trn_父节点, 业务对象模型类 cls_模型类, 业务对象模型类 cls_关系模型类, 组织信息类 cls_组织信息) { List<组织信息类> lst_子组织对象 = null; 关系管理泛型基类 cls_关系泛型基类 = new 关系管理泛型基类(); cls_关系泛型基类.获取父对象关联的子(cls_组织信息, cls_关系模型类, cls_模型类, out lst_子组织对象); foreach (组织信息类 cls_子组织信息 in lst_子组织对象) { if (cls_子组织信息 == null) continue; TreeNode trn_子节点 = 形成树节点(cls_子组织信息); if (trn_父节点 == null) continue; trn_子节点.ImageIndex = 1; trn_子节点.SelectedImageIndex = 1; trn_父节点.Nodes.Add(trn_子节点); 递归加载组织结构(trn_子节点, cls_模型类, cls_关系模型类, cls_子组织信息); } } private TreeNode 形成树节点(组织信息类 cls_组织对象) { if (cls_组织对象 == null) return null; TreeNode trn_组织节点 = new TreeNode(cls_组织对象.str_部门名称); trn_组织节点.Tag = cls_组织对象; trn_组织节点.ImageIndex = 0; return trn_组织节点; } #endregion } }
作者: MKing0412 发布时间: 2011-12-12
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28