C# 中采用treeview递归生成目录树(Winform和Webform两种)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C# 中采用treeview递归生成目录树(Winform和Webform两种),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4222字,纯文字阅读大概需要7分钟。
内容图文
![C# 中采用treeview递归生成目录树(Winform和Webform两种)](/upload/InfoBanner/zyjiaocheng/648/ed21213a39844f06bf137bd9ac758c74.jpg)
部门表:
课程表:
查询结果结构:
数据结构分析,部门分为部门id和部门名称;课程分为课程id,课程名称,课程路径和课程所属部门。
要求以部门为父节点展示不同部门下的课程。
Winform采用treeview递归生成目录树
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
private void AddTree(int d_id, DataTable dt, TreeNode PNode)
{
foreach (DataRow dr in dt.Rows)
{
TreeNode node = new TreeNode();
node.Text = dr["Dept_name"].ToString();
node.Name = dr["Dept_id"].ToString();
if (treeView1.Nodes.Count == 0)
{
treeView1.Nodes.Add(node);
treeView1.ExpandAll();
}
else
{
int count = treeView1.Nodes.Count - 1;
System.Diagnostics.Debug.WriteLine("TreeView1_Node = " + treeView1.Nodes[count].Name);
if (!treeView1.Nodes[count].Name.Equals(node.Name))
{
treeView1.Nodes.Add(node);
treeView1.ExpandAll();
}
}
DataView dv = new DataView(dt);
dv.RowFilter = "Dept_id = " + dr["Dept_id"].ToString();
foreach (DataRowView drv in dv)
{
TreeNode childNode = new TreeNode();
childNode.Text = drv["Course_name"].ToString();
childNode.Name = drv["Course_id"].ToString();
childNode.Tag = drv["Course_path"].ToString();
System.Diagnostics.Debug.WriteLine("childNode_Tag = " + childNode.Tag);
node.Nodes.Add(childNode);
treeView1.ExpandAll();
}
}
}
webform采用treeview递归生成目录树
private void AddTree(int d_id, DataTable dt, TreeNode PNode)
{
foreach (DataRow dr in dt.Rows)
{
//新建节点
TreeNode node = new TreeNode();
//给当前节点赋值
node.Text = dr["Dept_name"].ToString();
node.Value = dr["Dept_id"].ToString();
//判断当前是否存在根节点,不存在根节点,直接添加
if (TreeView1.Nodes.Count == 0)
{
TreeView1.Nodes.Add(node);
node.Expanded = true;
}
else
{
int count = TreeView1.Nodes.Count - 1;
System.Diagnostics.Debug.WriteLine("TreeView1_Node = " + TreeView1.Nodes[count].Text);
//判断treeview中是否已经存在当前结点(node.text),不存在则添加,已经存在则不添加
if (!TreeView1.Nodes[count].Text.Equals(node.Text))
{
TreeView1.Nodes.Add(node);
node.Expanded = true;
}
}
DataView dv = new DataView(dt);
//过滤得到按部门id分类的结果集
dv.RowFilter = "Dept_id = " + dr["Dept_id"].ToString();
//遍历过滤后的结果集
foreach (DataRowView drv in dv )
{
//新建子节点
TreeNode childNode = new TreeNode();
//childNode.Text = dt.Rows[i]["Course_name"].ToString();
//childNode.Value = dt.Rows[i]["Course_id"].ToString();
//childNode.NavigateUrl = dt.Rows[i]["Course_path"].ToString();
childNode.Text = drv["Course_name"].ToString();
childNode.Value = drv["Course_id"].ToString();
childNode.NavigateUrl = drv["Course_path"].ToString();
//将子节点添加到当前父节点下
node.ChildNodes.Add(childNode);
}
}
}
————————————————
版权声明:本文为CSDN博主「Goenken」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/sinat_35187039/article/details/82631107
内容总结
以上是互联网集市为您收集整理的C# 中采用treeview递归生成目录树(Winform和Webform两种)全部内容,希望文章能够帮你解决C# 中采用treeview递归生成目录树(Winform和Webform两种)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。