C#递归加载目录树
/// 获取目录管理信息集合 /// </summary> /// <returns></returns> public List<CatalogTree> GetCatalogTree() { List<CatalogTree> list = new List<CatalogTree>(); var db = DatabaseFactory.CreateDatabase("ELManage"); string sql = "select KeyId,CatalogName,ParentId,SortCode,IsFolder from EL_Catalog where EnableMark=1"; DbCommand cmd = db.GetSqlStringCommand(sql); DataTable dt = db.ExecuteDataTable(cmd); ; i < dt.Rows.Count; i++) { DataRow dr = dt.Rows[i]; CatalogTree model = new CatalogTree(); model.keyid = Convert.ToString(dr["KeyId"]); model.catalogname = Convert.ToString(dr["CatalogName"]); model.parentid = Convert.ToString(dr["ParentId"]); if (!Convert.IsDBNull(dr["SortCode"])) { model.sortcode = Convert.ToInt32(dr["SortCode"]); } if (!Convert.IsDBNull(dr["IsFolder"])) { model.isfolder = Convert.ToInt32(dr["IsFolder"]); } list.Add(model); } //获取根节点 var mds = list.Where(c => c.parentid == "-").OrderBy(t => t.sortcode).ToList(); foreach (var item in mds) { //获取子节点 item.children = GetChildrens(list, item); } return mds; }
递归获取子节点:
/// 获取目录管理信息集合 /// </summary> /// <returns></returns> public List<CatalogTree> GetCatalogTree() { List<CatalogTree> list = new List<CatalogTree>(); var db = DatabaseFactory.CreateDatabase("ELManage"); string sql = "select KeyId,CatalogName,ParentId,SortCode,IsFolder,TableName from EL_Catalog where EnableMark=1"; DbCommand cmd = db.GetSqlStringCommand(sql); DataTable dt = db.ExecuteDataTable(cmd); ; i < dt.Rows.Count; i++) { DataRow dr = dt.Rows[i]; CatalogTree model = new CatalogTree(); model.keyid = Convert.ToString(dr["KeyId"]); model.catalogname = Convert.ToString(dr["CatalogName"]); model.parentid = Convert.ToString(dr["ParentId"]); if (!Convert.IsDBNull(dr["SortCode"])) { model.sortcode = Convert.ToInt32(dr["SortCode"]); } if (!Convert.IsDBNull(dr["IsFolder"])) { model.isfolder = Convert.ToInt32(dr["IsFolder"]); } list.Add(model); } //获取根节点 var mds = list.Where(c => c.parentid == "-").OrderBy(t => t.sortcode).ToList(); foreach (var item in mds) { //获取子节点 item.children = GetChildrens(list, item); } return mds; }
C#递归加载目录树的更多相关文章
- C# IO操作(五)文件的递归加载
本篇是一个案例,其核心通过代码展示代码中的递归这个用法,程序的界面如下:
- C#:将空间数据加载到树视图控件
自己 整理了 下 代码 测试了下 还行... #region 操作树视图控件 /// <summary> /// 自定义需要的类型 /// </summary> enum Da ...
- WinForm 进程、线程、TreeView递归加载、发送邮件--2016年12月13日
进程:一个程序就是一个进程,但是也有一个程序需要多个进程来支持的情况 进程要使用的类是:Process它在命名空间:System.Diagnostics; 静态方法Start(); Process.S ...
- winform进程、线程、TreeView递归加载
进程: 一般来说,一个程序就是一个进程,不过也有一个程序需要多个进程支持的情况. 进程所使用的类:Process 所需命名空间:System.Diagnostics; 可以通过进行来开启计算机上现有的 ...
- 省市数据递归加载到TreeView
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- MVC4加载zTree树小控件
前言: 第一次学习使用MVC框架,找了个练手项目,加载zTree树小控件.下面我就一步步说明我这次练手的经历以记录.如果有什么错误,希望各位大神帮忙指正,谢谢. 第一步: 利用VS2010新建一个MV ...
- 将Xml文件递归加载到TreeView中
#region [通过XDocument的方式将Xml文件递归到TreeView控件中] //读取Xml文件(XDocument) //1.加载Xml文件 XDocument document=XD ...
- 转:zTree树控件实战篇:针对多个下拉加载zTree树应该如何做出合理的配置
今天有一个zTree的朋友遇到一个非常棘手的问题,才研究zTree树控件两天就被上头催着看成果,很是苦恼.他面对的问题就是页面内多个地方需要下拉在其文本框下方加载zTree树,由于对zTree下拉加载 ...
- python- 动态加载目录下所有的类
# 背景 自动化测试框架中model层下有很多类,用来操作mysql的,使用的时候需要把全部的类加载进来,需要使用到动态加载类 # 解决方法 使用pkgutil,内置的方法,常用的话有两个方法 ite ...
随机推荐
- 生日蛋糕 (poj1190) (dfs剪枝)
[题目描述] 7月17日是Mr.W的生日,ACM-THU为此要制作一个体积为Nπ的M层生日蛋糕,每层都是一个圆柱体. 设从下往上数第i(1 <= i <= M)层蛋糕是半径为Ri, 高度为 ...
- 回溯---N皇后
N 皇后 51. N-Queens (Hard) 题目描述: 在n*n的矩阵中摆放n个皇后,并且每个皇后不能在同一列,同一个对角线上,求所有的n皇后解. 思路分析: 一行一行地摆放,在确定一行 ...
- Django基础之简介(二)
三板斧 from django.shortcuts import render,HttpResponse, redirect HttpResponse # 返回字符串 urls: urlpatte ...
- zTree根节点默认打开
1.在生成tree的json数据中,直接给出:open:true的属性; 2.treeObj.expandAll(true); 3.var zTree = $.fn.zTree.getZTreeObj ...
- ReactiveObjC(RAC)的使用汇总
RAC 指的就是 RactiveCocoa ,是 Github 的一个开源框架,能够帮我们提供大量方便的事件处理方案,让我们更简单粗暴地去处理事件,现在分为 ReactiveObjC 和 Reacti ...
- 09.Linux系统由于不正常关机导致的分区问题
问题:Error:UNEXPECTED INCONSISTENCY: RUN fsck MANUALLY Give root password for maintenance ------------ ...
- [CQOI2015]网络吞吐量(网络流+SPFA)
[CQOI2015]网络吞吐量 题目描述 路由是指通过计算机网络把信息从源地址传输到目的地址的活动,也是计算机网络设计中的重点和难点.网络中实现路由转发的硬件设备称为路由器.为了使数据包最快的到达目的 ...
- 剖析 Vue.js 内部运行机制 (1)
1. new Vue() 之后. Vue 会调用 _init 函数进行初始化,也就是这里的 init 过程,它会初始化生命周 期.事件. props. methods. data. computed ...
- Task5.NB_SVM_LDA
参考:https://blog.csdn.net/u013710265/article/details/72780520 贝叶斯公式就一行: P(Y|X)=P(X|Y)P(Y)P(X) 而它其实是由以 ...
- netty模型简介
Netty工作原理图 netty抽象出了两组线程池,BossGroup专门负责客户端 的连接,WorkerGroup专门负责网络读写. BossGroup和WorkerGroup 类型都是NioEve ...