部门表:
课程表:
查询结果结构:
数据结构分析,部门分为部门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
|
请发表评论