这几天一直想着做个树形菜单界面,并且内容从数据库中加载,于是就有了接下来的文章。先从视频看下效果吧。(TreeView可以自己编辑节点,但是这些节点都是一开始写好的,不够灵活)
实现步骤
主要代码如下
这里的数据库是Sqlite数据库。表格结构如下图
这里主要是示意,只建了两列,一列是节点名称,一列是节点层级。
程序源码:https://github.com/yuanhuihai/treeViewDataBase
节点遍历方法,通过for循环实现。这里dt是从数据库返回的数据集。
//绑定TrreView
private void InitModuleTree(DataTable dt)
{
//清空treeview上所有节点
this.tree_Role.Nodes.Clear();
int[] gen = new int[dt.Rows.Count]; //用于存储父节点Tag
int[] zi = new int[dt.Rows.Count]; //用于存储子节点Tag
for (int i = 0; i < gen.Length; i++)
{
string zhi = dt.Rows[i][1].ToString();//获取节点Tag值 eg:1-2
if (zhi.Length > 1) //表示是子节点 eg:1-2
{
gen[i] = int.Parse(zhi.Substring(0, zhi.IndexOf('-')));
zi[i] = int.Parse(zhi.Substring(zhi.IndexOf('-') + 1));
}
else //表示是根节点 eg:2
{
//将所有父节点加到treeview上
zi[i] = int.Parse(zhi);
TreeNode nodeParent = new TreeNode();
nodeParent.Tag = (zi[i]).ToString();
nodeParent.Text = dt.Rows[i][0].ToString();//填充父节点名称
tree_Role.Nodes.Add(nodeParent);
}
}
bindChildNote(dt, gen, zi);
}
//绑定子节点
private void bindChildNote(DataTable dt, int[] gen, int[] zi)
{
for (int i = 0; i < gen.Length; i++)
{
if (gen[i] != 0 && zi[i] != 0) //便利所有节点,找到所有子节点
{
TreeNode childNode = new TreeNode();
foreach (TreeNode item in tree_Role.Nodes) //便历treeview上所有父节点
{
if (item.Tag.ToString() == gen[i].ToString()) //找到当前子节点的父节点
{
childNode.Tag = zi[i].ToString();
childNode.Text = dt.Rows[i][0].ToString();//填充子节点名称
item.Nodes.Add(childNode);
}
}
}
}
tree_Role.ExpandAll(); //展开整棵树
}
复制
文章转载自数字化设备人,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
数据库国产化替代深化:DBA的机遇与挑战
代晓磊
1224次阅读
2025-04-27 16:53:22
2025年4月国产数据库中标情况一览:4个千万元级项目,GaussDB与OceanBase大放异彩!
通讯员
690次阅读
2025-04-30 15:24:06
国产数据库需要扩大场景覆盖面才能在竞争中更有优势
白鳝的洞穴
576次阅读
2025-04-14 09:40:20
【活动】分享你的压箱底干货文档,三篇解锁进阶奖励!
墨天轮编辑部
496次阅读
2025-04-17 17:02:24
一页概览:Oracle GoldenGate
甲骨文云技术
472次阅读
2025-04-30 12:17:56
GoldenDB数据库v7.2焕新发布,助力全行业数据库平滑替代
GoldenDB分布式数据库
466次阅读
2025-04-30 12:17:50
优炫数据库成功入围新疆维吾尔自治区行政事业单位数据库2025年框架协议采购!
优炫软件
356次阅读
2025-04-18 10:01:22
国产数据库图谱又上新|82篇精选内容全览达梦数据库
墨天轮编辑部
269次阅读
2025-04-23 12:04:21
MySQL 30 周年庆!MySQL 8.4 认证免费考!这次是认真的。。。
数据库运维之道
249次阅读
2025-04-28 11:01:25
给准备学习国产数据库的朋友几点建议
白鳝的洞穴
237次阅读
2025-05-07 10:06:14