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 ...
随机推荐
- Python2和Python3中的rang()不同之点
知道在python中rang()是一个有序的列表,在使用过程发现,Python2和Python3中的rang()不同之点,下面讲述不同之点 1,Python2 rang()用法 ->> r ...
- JVM虚拟机基础知识
1. Java的发展 Java之父:詹姆斯·高斯林 2. Java的技术体系 Java 程序设计语言 JVM class文件格式 编译器 Java API 第三方Java类库 三个版本: Java S ...
- 【问题解决方案】git clone失败的分析和解决
参考链接 git_clone资源获取失败解决 使用Git clone代码失败的解决方法 [Git] Clone failed 克隆失败的解决方法 问题描述: 无论是git clone还是pull,均失 ...
- 前端开发JavaScript入门——JavaScript介绍&基本数据类型
JavaScript 诞生于1995年,它的出现主要是用于处理网页中的 前端验证. • 所谓的前端验证,就是指检查用户输入的内容是否符合一定的 规则. • 比如:用户名的长度,密码的长度,邮箱的格式等 ...
- js中JSON和JSONP的区别,让你从懵逼到恍然大悟
说到AJAX就会不可避免的面临两个问题,第一个是AJAX以何种格式来交换数据?第二个是跨域的需求如何解决?这两个问题目前都有不同的解决方案,比如数据可以用自定义字符串或者用XML来描述,跨域可以通过服 ...
- FreeSWITCH Explained / Configuration / Proxy Media
FreeSWITCH has 3 media handling modes: Default: media flows through FS, full processing options - RT ...
- 2018-5-5-UWP-和-WPF-对比
title author date CreateTime categories UWP 和 WPF 对比 lindexi 2018-05-05 17:23:33 +0800 2018-04-16 20 ...
- Sersync 上配置 Sersync 服务
上面的工作做好之后呢,下面就开始正式配置我们的 Sersync 了! 我们在 Sersync 安装过程中所用到包均是从谷歌 Sersync 项目组取得的,地址: https://code.google ...
- LinuxC语言实现服务端与客户端多进程通信
链接:https://pan.baidu.com/s/1YDNIyTKAkh4E5x2dBeTgcQ 提取码:y35q 复制这段内容后打开百度网盘手机App,操作更方便哦 本实验用的是Centos7m ...
- AWD
扫描对方IP:ifconfig (先获取自己的IP)netdiscover -r 192.168.0.1/24 (扫描1~124的IP) 获取IP后:nmap -sV 192.168.0.104 ...