treeview递归绑定的两种方法
treeview递归绑定的两种方法
发布时间:2016-12-28 来源:查字典编辑
摘要:方法一:复制代码代码如下:publicvoidcreattree(intfid,TreeNodeparentnode){DataTabled...

方法一:

复制代码 代码如下:

public void creattree(int fid, TreeNode parentnode)

{

DataTable dt = new DataTable();

dt = op.BindGroup();

DataRow[] drs = dt.Select("parentid=" + fid);

foreach (DataRow row in drs)

{

if (parentnode != null)

{

TreeNode tempnode = new TreeNode();

tempnode.Text = row["groupname"].ToString();

tempnode.Name = row["groupid"].ToString();

parentnode.Nodes.Add(tempnode);

creattree(Convert.ToInt32(row["groupid"]), tempnode);

}

else

{

TreeNode tempnode = new TreeNode();

tempnode.Text = row["groupname"].ToString();

tempnode.Name = row["groupid"].ToString();

treeView1.Nodes.Add(tempnode);

creattree(Convert.ToInt32(row["groupid"]), tempnode);

}

}

}

private void bindtree()

{

treeView1.Nodes.Clear();

creattree(0,(TreeNode)null);

}

方法二:

复制代码 代码如下:

public void AddTree(int ParentID, TreeNode pNode)

{

DataTable dt = new DataTable();

dt = op.BindGroup();

DataView dvTree = new DataView(dt);

//过滤ParentID,得到当前的所有子节点

dvTree.RowFilter = "parentid = " + ParentID;

foreach (DataRowView Row in dvTree)

{

TreeNode Node = new TreeNode();

if (pNode == null)

{ //添加根节点

Node.Text = Row["groupname"].ToString();

treeView1.Nodes.Add(Node);

//Node.Expanded = true;

AddTree(Int32.Parse(Row["groupid"].ToString()), Node); //再次递归

}

else

{ //添加当前节点的子节点

Node.Text = Row["groupname"].ToString();

pNode.Nodes.Add(Node);

//Node.Expanded = true;

AddTree(Int32.Parse(Row["groupid"].ToString()), Node); //再次递归

}

}

}

private void bindtree()

{

treeView1.Nodes.Clear();

AddTree(0, (TreeNode)null);

}

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新C#教程学习
热门C#教程学习
编程开发子分类