这个生成Treeview的递归有什么问题?请大家帮看看吧,郁闷了N天了
半截烟头 2007-10-12 08:15:49 程序如下:
#region //处理树节点
private TreeNode ProcessTreeNode(ECobj e, TreeNodeCollection tCol)//ECObj 是一个自定义对象
{
TreeNode tNode = new TreeNode();
//装入导航树节点标题
tNode.Text = eci.Name;
//记录导航树节点ID值
tNode.Value = eci.ID.ToString();
try
{
tCol.Add(tNode);
return tNode;
}
catch { return null; }
}
else{return null;}
}
#endregion
//说明:上面这过程没有问题,对正常加入节点
#region //递归增加节点
public void AddTreeNode(long PID, TreeNode td)
{
ECObjS ec = new ECObjS();//ECObjS也是一个自定义对象,是集合类型
ec.FindChildren(ClsID,1);//查找当前ClsID下的第一层子,问题就出现在这儿,当第一次查找到的子节点有两个或两个以上的时候,下面的循环永远只能对第一个节点执行递归,为什么啊.
for (int i = 0; i < ec.Count; i++)
{
AddTreeNode(ec[i].ClsID, ProcessTreeNode(ec[i], td.ChildNodes));
}
}
#endregion