0
当前,rad树视图返回重复的子节点。我可以如何执行,检查孩子节点是否已经存在。如果已经存在,则不要添加并继续循环。谢谢RadTreeView的子节点检查节点是否已经存在
私人无效BuildProjectTree(){
EntityCollection<ProjectEntity> collection = GetProjectData();
treProjects.Nodes.Clear();
ArrayList pgnodes = new ArrayList();
RadTreeNode pnode = null;
RadTreeNode snode = null;
//MembershipUserCollection membershipCollection = new MembershipUserCollection();
//membershipCollection = Membership.GetAllUsers();
foreach (ProjectEntity p in collection)
{
pnode = null;
foreach (RadTreeNode n in treProjects.GetAllNodes())
{
//bool nodeExist = false;
if (n.Text.Trim() == p.TeamLeader.Trim().ToUpper())
{
pnode = n;
break;
}
}
if (pnode != null)
{
snode = null;
foreach (RadTreeNode n in pnode.Nodes)
{
if (n.Value == p.ProjectSubGroup.ProjectGroup.Name)
{
snode = n;
break;
}
}
if (snode != null)
{
RadTreeNode projectnode = new RadTreeNode(p.ProjectTitle + " (" + p.ReferenceNumber + ")",
p.ProjectId.ToString(), BuildProjectNavigationUrl(p, false));
snode.Nodes.Add(projectnode);
}
}
else
{
RadTreeNode projectteamleadernode = new RadTreeNode(p.TeamLeader.Trim().ToUpper());
RadTreeNode projectgroupnode = new RadTreeNode(p.ProjectSubGroup.ProjectGroup.Name, String.Empty);
RadTreeNode projectnode = new RadTreeNode(p.ProjectTitle + " (" + p.ReferenceNumber + ")",
p.ProjectId.ToString(), BuildProjectNavigationUrl(p, false));
projectgroupnode.Nodes.Add(projectnode);
projectteamleadernode.Nodes.Add(projectgroupnode);
pgnodes.Add(projectteamleadernode);
}
}
foreach (RadTreeNode pg in pgnodes)
{
treProjects.Nodes.Add(pg);
}
//treProjects.ExpandAllNodes();
treProjects.CollapseAllNodes();
}
嗨hknust,我有更新的代码。谢谢。 – Supermode 2013-02-24 02:39:37
唯一突出的是:'treProjects.Nodes.Clear();'这是你的代码示例中的一个工件吗?如果没有,则无法清除该树,然后在其中搜索匹配项。我也假设这棵树是以团队领导者的名字作为大写的。为了安全起见,在这一行添加另一个上限'if(n.Text.Trim()。ToUpper()== p.TeamLeader.Trim()。ToUpper())' – hknust 2013-03-03 22:41:42