treeview无限树,递归 有些困扰 急,songsu见
最近也需要这个功能,于是在网上找了一番,发现一个帖子跟我需求差不多,但是我看了还是有疑惑,希望大家能帮忙解决下。
原帖:http://topic.csdn.net/u/20070910/11/70fb5aac-1e94-4a3e-8927-0ef131c31041.html
songsu的回答:
ID         PID         CName  
注:  
PID:父ID,例如武汉属于湖北,则数据库代码如下  
1   0   湖北  
2   1   武汉  
CName:城市名称  
#region   填充树节点  
///   <summary>  
///   填充树节点  
///   </summary>  
///   <param   name= "tid "> 父ID </param>  
///   <param   name= "team "> 父数据表 </param>  
///   <param   name= "c "> 父节点集合 </param>  
static   void   FillTreeView(string   tid,ref   DataTable   team,TreeNodeCollection   c)  
{  
DataRow[]   teamRows   =   team.Select( "PID= "   +   tid); //搜索所有子组  
int   l   =   teamRows.Length;  
//加载子分组  
for(int   i   =   0   ;   i   <   l   ;   ++i)  
{  
TreeNode   n   =   new   TreeNode(teamRows[i][2].ToString(),0,0);  
c.Add(n);  
CKlTree.FillTreeView(teamRows[i][0].ToString(),ref   team,n.Nodes);  
}  
}  
#endregion
注意:CKlTree为你的树控件对象。
   我理解也只能理解少部分, 递归也是昨天才看的,大概就是函数自身调用自身,
   上面写了 CKlTree是自己的树控件,但我在创建方法的时候如何把这个控件带进去啊?
求解,勿笑,对递归不怎么理解。  也别来说你基础差这类的, 我是在问啊,谢谢大家,主要有点急,不然就自己慢慢悟了。。
------解决方案--------------------
CKlTree 不是控件对象,而应该是 FillTreeView 这个方法所在的类的类名,去掉就行了,第二个参数的 ref 修饰也是多余
调用时,窗体上要有一个 TreeView 控件,查询出数据到 DataTable 中
FillTreeView(0, ref 查询出的数据表, 窗体TreeView.Nodes);