怎么递归加添TreeView节点

怎么递归加添TreeView节点,第1张

TreeNode RootNode=new TreeNode()

this.treeView1.Nodes.Add(RootNode)

就这样加根节点,子节点也是同样方法。

其中:

ParentNode:父结点

ChildNodes:VS默认的父节点属性,用于获取父结点的第一级子节点

Add: VS默认的结点添加方法

ChildNode: 所要插入的子节点

我把我以前用的表结构先介绍下

表主要用来保存权限分类的

字段 PopId 权限ID 主键

PopName 权限名字

PostUrl 链接到的URL

flid 父节点ID

其中 根节点的flid为0 其他的父节点根据情况填写

页面实现的时候 直接 添加treeview控件

cs代码如下

protected void Page_Load(object sender, EventArgs e)

{

bindtree(PopId)

}

private void bindtree()

{

TreeView1.Nodes.Clear()

AddTree(0, (TreeNode)null)

}

public void AddTree(int ParentID, TreeNode pNode)

{

DataTable dt = new DataTable()

//这个是我获取数据源的代码

dt = logbll.BindPop()

DataView dvTree = new DataView(dt)

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

dvTree.RowFilter = "flid = " + ParentID

foreach (DataRowView Row in dvTree)

{

TreeNode Node = new TreeNode()

if (pNode == null)

{ //添加根节点

Node.Text = Row["PopName"].ToString()

TreeView1.Nodes.Add(Node)

//Node.Expanded = true

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

}

else

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

Node.Text = Row["PopName"].ToString()

Node.NavigateUrl = Row["PostUrl"].ToString()

pNode.ChildNodes.Add(Node)

//Node.Expanded = true

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

}

}

}

你可以根据你的表来修改相应的字段名,下班了,没时间帮你写完整的了,代码能用,有什么问题明天再解决吧


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11233229.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-14
下一篇2023-05-14

发表评论

登录后才能评论

评论列表(0条)

    保存