Group对象如下
ID Name ParentID
0 南方动力
1 411车间 0
2 军代表室 0
3 信息中心 0
4 质保室 0
5 车间1 1
6 车间2 1
7 车间3 1
8 1号生产线 5
9 2号生产线 5
10 生产1组 8
11 生产2组 8
12 生产1组 9
13 生产2组 9大概的数据就是这样了,求大家帮忙说下
ID Name ParentID
0 南方动力
1 411车间 0
2 军代表室 0
3 信息中心 0
4 质保室 0
5 车间1 1
6 车间2 1
7 车间3 1
8 1号生产线 5
9 2号生产线 5
10 生产1组 8
11 生产2组 8
12 生产1组 9
13 生产2组 9大概的数据就是这样了,求大家帮忙说下
解决方案 »
- c# 读取Excel数据,可以指定单元格显示到lebal控件上,求助
- richBox
- 请问大家关于音频传输的问题??(解决给分)
- 高效可靠的多国语言开发
- 全局程序集中使用log4net的配置问题
- 为何改了窗体中按钮的名称,原来的单击事件依然有效呢?怪?
- winfrom中dataGridView和checkedListBox 问题
- Math.Sin/ Math.Tan/Math.Cos 是什么意思
- 怎么控制只有公司里的电脑可以上自己的网站??????
- 送分题.....请问:以pdg为扩展名的文件用什么打开?
- c# 文件遍历问题
- winform splitcontainer用一个按钮完成:一个panel收起,另一个最大化
{
treeview.Items.Add(group);
}
不就这样行了
foreach(var group in list)
{
treeview.Nodes.Add(group);
}
List<Group>group=new List<Group>();
for (int i = 0; i < group.Count();i++ )
{
if (group[i].ParentID!="")
{
TreeNode t0= treeView1.Nodes.Find(group[i].ParentID,true)[0];
if(t0==null)
{
treeView1.Nodes.Add(group[i].id.ToString(),group[i].Name);
}
else
{
t0.Nodes.Add(group[i].id.ToString(),group[i].Name);
}
}
else
{
treeView1.Nodes.Add(group[i].id.ToString(),group[i].Name);
}
}没测过 不过觉得思想是对的
private List<Group> list;
public void AddTree(TreeNode parentNode, int parentId)
{
var selectedList = list.FindAll(item => item.ParentId == parentId);
foreach (var group in selectedList)
{
var node = parentNode.Nodes.Add(group.ID.ToString(), group.Name);
AddTree(node, group.ID);
}
}
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_组织节点;
}
我们之前写的递归加载组织树,给你看看。
wpf里的最简单了,只需要准备好一个treeview里的数据模板就可以了