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 ...
随机推荐
- VBA中Let与Set的区别
Let与Set的区别 1.在“类模块”中 Property Let 语句 在Class块中,是给普通变量进行赋值操作的Property,该种Property将不能在其前面使用Set,因而将不能用户对对 ...
- Flask 中请求钩子的理解和应用?
请求钩子是通过装饰器的形式实现的,支持以下四种:1,before_first_request 在处理第一个请求前运行2,before_request:在每次请求前运行3,after_request:如 ...
- Python 的 time 模块导入及其方法
时间模块很重要,Python 程序能用很多方式处理日期和时间,转换日期格式是一个常见的功能,讲解一下Python 的 time 模块导入及其方法. 1,time 模块导入 import time; # ...
- 【数据库运维】数据库(server)的时区设置及世界主要地区的时区
[时区设置不当会有什么问题] 当进行海外项目运维的时候,常常会遇到时区设置的问题.假设时区设置不当 或者 同样项目的server之间的时区不一致,都会有导致项目的数据异常的风险. 假设数据表的字段使用 ...
- 重绘ComboBox —— 让ComboBox多列显示
最近在维护一个winform项目,公司购买的是DevExpress控件 (请问怎么联系DevExpress工作人员? 我想询问下,广告费是怎么给的.:p),经过公司大牛们对DevExpress控件疯狂 ...
- python学习笔记(8):
一.变量和类型 1.Python基本变量类型: 整数 ,浮点数 ,字符串, 布尔值 ,空值 ,函数, 模块, 类型, 自定义类型 2.变量定义 :变量存储在内存中的值.这就意味着在创建变量时会在内存中 ...
- MiniUI学习笔记1-表单控件
1.输入框样式 class="mini-textbox" //普通输入框 class="mini-password" //密码输入框 class="m ...
- vue修改Element的el-table样式
修改Element中的el-table样式,可以使用以下几种方法: 1. row-style 行的 style 的回调方法,也可以使用一个固定的 Object 为所有行设置一样的 Style. 2. ...
- Spring Boot 全局排除 spring-boot-starter-logging 依赖
https://blog.csdn.net/u013314786/article/details/90412733 项目里使用了log4j2做日志处理,要排除掉Spring Boot 很多jar里边默 ...
- Codeforces Round #425 (Div. 2) - B
题目链接:http://codeforces.com/contest/832/problem/B 题意:给定一个好字母集合(只有小写字母,除了这些外其余都是坏字母集合),给定一个匹配模式串, 模式串只 ...