C# 递归产生树
2021-03-31 20:27
标签:设置 from view parent exec .text UI creat name 非递归绑定3级别 C# 递归产生树 标签:设置 from view parent exec .text UI creat name 原文地址:https://www.cnblogs.com/enych/p/9250390.html //递归产生树
private void CreateTwo(TreeNode node, int id)
{
#region --根据指定ID查找数据到 dt
string strSql = "select * from Menu where MenuParent = " + id;
DataTable dt = SqlHelper.ExecuteDatatable(strSql);
#endregion
if (id == 0) // id = 0 是根节点
{
for (int i = 0; i //先查询PID=0的
{
TreeNode nd = new TreeNode();
nd.Text = dt.Rows[i]["MenuName"].ToString();
CreateTwo(nd, Convert.ToInt32(dt.Rows[i]["MenuId"].ToString())); //把根节点ID传过去查找PID是该id的子节点
treeView1.Nodes.Add(nd);
}
}
else
{
for (int i = 0; i )
{
TreeNode Tnode = new TreeNode();
Tnode.Text = dt.Rows[i]["MenuName"].ToString();
CreateTwo(Tnode, Convert.ToInt32(dt.Rows[i]["MenuId"].ToString()));
node.Nodes.Add(Tnode);
}
}
}
//绑定TrreView
private void InitModuleTree(DataTable dt)
{
//清空treeview上所有节点
this.treeView1.Nodes.Clear();
//先绑定父节点
for (int i = 0; i )
{
int Prent = Convert.ToInt16(dt.Rows[i]["MenuParent"]);//
if (Prent == 0) //先绑定父节点
{
TreeNode nodeParent = new TreeNode();
nodeParent.Tag = dt.Rows[i]["MenuId"];//设置一个值,为加入子节点做准备,(先这样用,不管Tag是什么)
nodeParent.Text = dt.Rows[i]["MenuName"].ToString();
treeView1.Nodes.Add(nodeParent);
}
}
//在绑定子节点(绑定2级目录)
foreach (TreeNode item in treeView1.Nodes)
{
for (int i = 0; i )
{
var ss = dt.Rows[i]["MenuParent"]; //获取pid
var s1 = item.Tag;
if ((int)item.Tag == (int)dt.Rows[i]["MenuParent"]) //dt该行的pid = 这个父节点ID (表示属该行子节点)
{
TreeNode childNode = new TreeNode();
childNode.Tag = dt.Rows[i]["MenuId"];
childNode.Text = dt.Rows[i]["MenuName"].ToString();
item.Nodes.Add(childNode); //加入父节点中
};
}
}
//在绑定子节点(绑定3级目录)
foreach (TreeNode item1 in treeView1.Nodes)
{
int index0 = treeView1.Nodes.IndexOf(item1); //index 为索引值
var nodes1 = treeView1.Nodes[index0].Nodes;
foreach (TreeNode item in nodes1)
{
for (int i = 0; i )
{
var ss = dt.Rows[i]["MenuParent"]; //获取pid
var s1 = item.Tag;
if ((int)item.Tag == (int)dt.Rows[i]["MenuParent"]) //dt该行的pid = 这个父节点ID (表示属该行子节点)
{
TreeNode childNode = new TreeNode();
childNode.Tag = dt.Rows[i]["MenuId"];
childNode.Text = dt.Rows[i]["MenuName"].ToString();
item.Nodes.Add(childNode); //加入父节点中
};
}
}
}
treeView1.ExpandAll(); //展开整棵树
}
上一篇:微服务实践分享(2)api网关