首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

怎么递归加添TreeView节点

2012-03-13 
如何递归加添TreeView节点private void AddNode(string node){for (int i 0 i 10 i++){this.treeVie

如何递归加添TreeView节点
private void AddNode(string node)
  {
  for (int i = 0; i < 10; i++)
  {
  this.treeView1.Nodes.Add(i.ToString());
  AddNode(i.ToString());
  }
  }
我要的是父节点是1-9,子节点也是1-9,怎么办?谢谢

[解决办法]
什么意思,1-9,讲明白点

[解决办法]
LZ的表结构设计好了吗
Info:
id int
name varchar(10)
parentId int

如:
id name parentId
1 a 0
2 c 0
3 f 1
4 h 2

然后,可以先生成父节点(parentId=0处),再递归调用生成子节点

C# code
//生成父节点private void CreateRoot(){  DataTable dt = new DataTable();  //adapter.Fill(dt);  if(dt.Rows.Count > 0)  {    foreach(DataRow dr in dt.Rows)    {      string id = dr["id"].ToString();      string name = dr["name"].ToString();      TreeNode root = new TreeNode(id,name);//也可只用Text,不用Value      TreeView1.Nodes.Add(root);      AddChildNode();//也可逐步加载,如果节点很多的话    }  }}//递归调用生成子节点private void AddChildNod(TreeNode parentNode){  //添加当前节点的子节点  //TreeNode childNode = new ChildNode();  //parentNode.ChildNodes.Add(childNode);  //递归调用,如果下面还有子节点的话  //AddChildNode(childNode);}
[解决办法]
private void InitTree (TreeNodeCollection Nds,string parentId)
{
DataView dv=new DataView();
TreeNode tmpNd;
string intId;
dv.Table=ds.Tables["表名"];
dv.RowFilter="ParentId='"+parentId+"'";
foreach(DataRowView drv in dv)
{
tmpNd=new TreeNode();
tmpNd.Tag=drv["NodeID"].ToString();
tmpNd.Text=drv["Name"].ToString();
Nds.Add(tmpNd);
intId=drv["ParentId"].Tostring();
InitTree(tmpNd.Nodes,tmpNd.Tag);
}
}

NodeID Name ParentId 
1 a 0 
2 c 0 
3 f 1 
4 h 2 

热点排行