首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET Framework >

C# winform中如何递归生成树

2012-02-08 
C# winform中怎么递归生成树数据库中返回为Datatale类型,要生成一个节点树,根据这两个数据信息NodeId,Fart

C# winform中怎么递归生成树
数据库中返回为Datatale类型,要生成一个节点树,根据这两个数据信息NodeId,FartherNodeId,生成节点树

[解决办法]
递归你会不?
递归你会,这个肯定可以搞定。
“递归加载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  }} 

热点排行