所以,添加TreeView上的节点,必须把你的TreeNode添到TreeView中,而不是单纯的TreeNode.Add方法。你不执行TreeView.Add(TreeNode)方法,就永远不会把你的TreeNode添加到树中。
至于代码,1l已经说的很清楚了。
递归调用/// <summary>
/// 根据菜单表把权限树加载好
/// </summary>
/// <param name="dt">数据源</param>
/// <param name="Filterid">上级ID</param>
/// <param name="node">树节点</param>
private void treeadd(DataTable dt, int Filterid, TreeNode node)
{
DataView subView = dt.DefaultView
subView.RowFilter = "ParentID = " + Filterid//获得ID级别为当前ID的
foreach (DataRowView item in subView)
{
//如果上级ID为0就直接加载树下面
if (Filterid == 0)
{
TreeNode treenodel = new TreeNode() //创建一个节点
treenodel.Text = item["MenuName"].ToString()节点名称
int id =Convert.ToInt32(item["MenuID"])
treenodel.Value = id.ToString()节点值
treeDepts.Nodes.Add(treenodel) 如果级别ID为0就直接加到根节点
treeadd(dt, id, treenodel) 递归调用
}
else
{
//不为0就加载传进来的子节点下
TreeNode treenodel = new TreeNode()
treenodel.Text = item["MenuName"].ToString()
int id = Convert.ToInt32(item["MenuID"])
treenodel.Value = id.ToString()
treenodel.Expanded = true 是否展开该节点
node.ChildNodes.Add(treenodel) 把节点加入到当前节点下,
treeadd(dt, id, treenodel)
}
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)