首页 新闻 会员 周边 捐助

TreeView控件用递归顺利提取到组织,但人员不是在最后一级中出现,可能与一些部门同级别

0
悬赏园豆:50 [已解决问题] 解决于 2011-10-10 10:49

用递归顺利提取到组织,但人员不是在最后一级中出现,可能与一些部门同级别
从树形图上看,有些人员和和部门是处于同一层次的 
如下层次:

集团公司
  -王某某(总经理) 
  -总经办
  -信管部
  -软件科
  -员工1 
  -员工2
  -硬件科
  -经营部
  -人力资源部  
.....
请各位高手支个招,有实例更好

楠木大叔的主页 楠木大叔 | 老鸟四级 | 园豆:2083
提问于:2011-09-30 16:11
< >
分享
最佳答案
0

这样的数据在数据库的表里面肯定能知道某个节点的父亲是谁的,根节点获取到以后,就根据根节点的ID获取所有的子节点,循环所有子节点,在给子节点的子节点赋值的时候就递归调用,这样就可以拿出你想要的结构了。下面是代码

        public DepartmentTreeNode GetRootNode()
{
System.Web.UI.WebControls.TreeNode node = RootNode();
DepartmentTreeNode rootnode = new DepartmentTreeNode(node.Value, node.Text);
rootnode.IsExpend = true;
rootnode.Selected = true;
foreach (System.Web.UI.WebControls.TreeNode n in node.ChildNodes)
{
DepartmentTreeNode child = new DepartmentTreeNode(n.Value,n.Text);
child.IsExpend = false;
child.ChildNodes = GetNodeList(child.Value);
child.HasChildNodes = ChildNodes.Count > 0 ? true : false;
rootnode.ChildNodes.Add(child);
}
return rootnode;
}

private IList<DepartmentTreeNode> GetNodeList(string id)
{
IList<DepartmentTreeNode> list = new List<DepartmentTreeNode>();
foreach (System.Web.UI.WebControls.TreeNode node in GetChilds(id))
{
DepartmentTreeNode depnode = new DepartmentTreeNode(node.Value, node.Text);
depnode.ChildNodes = GetNodeList(node.Value);
list.Add(depnode);
}
return list;
}
收获园豆:50
水晶途途 | 小虾三级 |园豆:1443 | 2011-09-30 23:17

谢谢哈 问题已经解决 欢迎多多交流哈

楠木大叔 | 园豆:2083 (老鸟四级) | 2011-10-10 10:47
其他回答(1)
0

欢迎有这方面经验的朋友给点思路

楠木大叔 | 园豆:2083 (老鸟四级) | 2011-09-30 16:22
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册