C#递归加载树

递归,就是有去有回,自己调用自己。

 1 public partial class SiteMaster : MasterPage
 2     {
 3         public DataSet list = null;
 4
 5         public List<TreeData> treeDatas = new List<TreeData>();
 6         string str = "";
 7         protected void Page_Load(object sender, EventArgs e)
 8         {
 9             if (LoginMITBz.currentUser == null)
10             {
11                 Response.Redirect("/Login/Login.aspx");
12             }
13             string sql = "SELECT a.Title,a.TreeId,a.Url,a.ParentID,a.ParentPath FROM dbo.M_Tree a INNER JOIN dbo.M_Permissions b ON a.TreeId = b.TreeId WHERE b.UserId=" + LoginMITBz.currentUser.UserId;
14             list = Hy.DBSqlU.DBUtility_USA.DbHelperSQLDB_USA_MIT_MitInfo.Query(sql);
15             #region Test
16
17             //foreach (DataRow mDr in list.Tables[0].Rows)
18             // {
19             // DataColumn mDc = list.Tables[0].Columns[0];
20             //Console.WriteLine(mDr["Title"].ToString());
21             //Console.WriteLine(mDr["Url"].ToString());
22
23             //    //foreach (DataColumn mDc in list.Tables[0].Columns)
24             //    //{
25             //    //    Console.WriteLine(mDr["Title"].ToString());
26             //    //    Console.WriteLine(mDr["Url"].ToString());
27             //    //}
28             //}
29             #endregion
30
31             foreach (DataRow mDr in list.Tables[0].Rows)
32             {
33                 DataColumn mDc = list.Tables[0].Columns[0];
34                 TreeData tree = new TreeData();
35                 tree.TreeId = (long)mDr["TreeId"];
36                 tree.Title = mDr["Title"].ToString();
37                 tree.Url = mDr["Url"].ToString();
38                 tree.ParentId = (int)mDr["ParentID"];
39                 treeDatas.Add(tree);
40             }
41
42
43             var data = treeDatas.Where(a => a.ParentId == 0);
44             foreach (var item in data)
45             {
46                 str += item.Title + ":" + item.Url + "\r\n";
47                 GetNode((int)item.TreeId);
48             }
49         }
50
51         public  void GetNode(int parentId)
52         {
53             var data = treeDatas.Where(a => a.ParentId == parentId);
54             foreach (var item in data)
55             {
56                 str += item.Title + ":" + item.Url + "\r\n";
57                 GetNode((int)item.TreeId);
58             }
59         }
60     }
61
62
63
64     public class TreeData
65     {
66         public long? TreeId { get; set; }
67         public int? ParentId { get; set; }
68         public string Title { get; set; }
69         public string Url { get; set; }
70     }

原文地址:https://www.cnblogs.com/gyl5201314/p/9154514.html

时间: 2024-11-06 03:39:00

C#递归加载树的相关文章

ExtJS 动态加载树treepanel

先来看看效果: 一.新建一个TreeStore,并添加根节点 Ext.define('Demo1.store.TreeDemoStore', { extend: 'Ext.data.TreeStore', root: { text: '目录树', id: 0 } }); 二.在view中添加treepanel,绑定TreeDemoStore Ext.define('Demo1.view.MyViewport', { extend: 'Ext.container.Viewport', initCo

C# IO操作(五)文件的递归加载

本篇是一个案例,其核心通过代码展示代码中的递归这个用法,程序的界面如下: 当点击“加载”按钮时,根据路径中的地址,加载该文件夹下所有的子文件夹和子文件,代码如下: 1 private void BtnLoad_Click(object sender, EventArgs e) 2 { 3 string sPath = txtPath.Text.Trim(); 4 LoadDirAndFile(sPath, tvList.Nodes); 5 } 6 7 private void LoadDirAn

省市数据递归加载到TreeView

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Data.SqlClient; namespace 省市数据递归加载到TreeView { public

jQuery 动态加载树

本案例中用到了jquery的 tree插件,在本文的附件中可以下载 jsp代码: <%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request

dojo加载树报错

1.错误描述    error loading undefined children.    TypeError:this._arrayOfTopLevelItems is undefied. 2.错误原因 3.解决办法 dojo加载树报错

加载树

加载树:   *  一次性全部加载       *  和数据库只交互一次       *  会把大量的数据加载到内存中   *  点击事件加载       *  和数据库交互很多次       *  按照需求加载数据一次性加载树:   *  页面上导入三个文件       *  zTreeStyle.css       *  jQuery-1.4.2.js       *  jquery-ztree.2.5.js   *  在页面上准备树的容器       <ul id="tree&quo

ligerui_ligerTree_003_配置url参数,加载“树”

配置url参数,加载“树”: 源码下载地址:http://download.csdn.net/detail/poiuy1991719/8571255 效果图:json.txt HTML代码: <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <html> <head> <title>配置url参数,加载“树”&l

JQuery/JS插件 jsTree加载树,初始化时加载前三级节点,当展开第三级节点时 就加载该节点下的所有子节点

jsTree加载树, 初始化时 加载前三级节点, 当展开第三级节点时 就加载该节点下的所有子节点 html: <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> </head> <body> <div id="plugins1"></div> <link

递归加载菜单树

1.创建数据库表 create table system_resource ( id bigint(11) not null primary key auto_increment comment 'id', resource_name varchar(20) not null comment '资源名称', resource_name_cn varchar(20) not null comment '资源中文名', resource_parent_name varchar(20) null co