/// 获取目录管理信息集合
         /// </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#递归加载目录树的更多相关文章

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

    本篇是一个案例,其核心通过代码展示代码中的递归这个用法,程序的界面如下:

  2. C#:将空间数据加载到树视图控件

    自己 整理了 下 代码 测试了下 还行... #region 操作树视图控件 /// <summary> /// 自定义需要的类型 /// </summary> enum Da ...

  3. WinForm 进程、线程、TreeView递归加载、发送邮件--2016年12月13日

    进程:一个程序就是一个进程,但是也有一个程序需要多个进程来支持的情况 进程要使用的类是:Process它在命名空间:System.Diagnostics; 静态方法Start(); Process.S ...

  4. winform进程、线程、TreeView递归加载

    进程: 一般来说,一个程序就是一个进程,不过也有一个程序需要多个进程支持的情况. 进程所使用的类:Process 所需命名空间:System.Diagnostics; 可以通过进行来开启计算机上现有的 ...

  5. 省市数据递归加载到TreeView

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  6. MVC4加载zTree树小控件

    前言: 第一次学习使用MVC框架,找了个练手项目,加载zTree树小控件.下面我就一步步说明我这次练手的经历以记录.如果有什么错误,希望各位大神帮忙指正,谢谢. 第一步: 利用VS2010新建一个MV ...

  7. 将Xml文件递归加载到TreeView中

    #region [通过XDocument的方式将Xml文件递归到TreeView控件中] //读取Xml文件(XDocument) //1.加载Xml文件 XDocument  document=XD ...

  8. 转:zTree树控件实战篇:针对多个下拉加载zTree树应该如何做出合理的配置

    今天有一个zTree的朋友遇到一个非常棘手的问题,才研究zTree树控件两天就被上头催着看成果,很是苦恼.他面对的问题就是页面内多个地方需要下拉在其文本框下方加载zTree树,由于对zTree下拉加载 ...

  9. python- 动态加载目录下所有的类

    # 背景 自动化测试框架中model层下有很多类,用来操作mysql的,使用的时候需要把全部的类加载进来,需要使用到动态加载类 # 解决方法 使用pkgutil,内置的方法,常用的话有两个方法 ite ...

随机推荐

  1. day20 博客系统开发

    setting 文件加入  AUTH_USER_MODEL = "app名称.UserInfo"     from django.db import models # Create ...

  2. 「Vue.js」Vue-Router + Webpack 路由懒加载实现

    一.前言 当打包构建应用时,Javascript 包会变得非常大,影响页面加载.如果我们能把不同路由对应的组件分割成不同的代码块,然后当路由被访问的时候才加载对应组件,这样就更加高效了.结合 Vue ...

  3. 17、前端知识点--Vue中ref的使用

    methods里面的方法,需要手动触发才会执行. 如果想让页面一上来就执行的话,就需要写在mounted这个钩子函数中. <body> <div id="app" ...

  4. 自制悬浮框,愉快地查看栈顶 Activity

    接手陌生模块时,如何快速了解每个页面对应的类,以及它们之间的跳转逻辑.总不能在代码里一个一个地找startActivity()吧? 有时候,又想查看别人的 app 的页面组织(像淘宝.微信啊),总不能 ...

  5. Python之路-Python中的线程与进程

    一.发展背景 任务调度 大部分操作系统(如Windows.Linux)的任务调度是采用时间片轮转的抢占式调度方式,也就是说一个任务执行一小段时间后强制暂停去执行下一个任务,每个任务轮流执行.任务执行的 ...

  6. basename 显示文件名或目录名

    1. 命令功能 basename 显示文件名或目录名,不显示文件的全路径文件名 2. 语法格式 basename  文件路径名 3. 使用范例 [root@localhost data]# basen ...

  7. PDO扩展

    <?php class db extends PDO { private $error; private $sql; private $bind; private $errorCallbackF ...

  8. 前端每日实战:45# 视频演示如何用纯 CSS 创作一个菱形 loader 动画

    效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/eKzjqK 可交互视频教程 此视频 ...

  9. 16.go语言基础学习(上)——2019年12月16日

    2019年12月13日10:35:20 1.介绍 2019年10月31日15:09:03 2.基本语法 2.1 定义变量 2019年10月31日16:12:34 1.函数外必须使用var定义变量 va ...

  10. Python---基础---常用的内置模块

    一. print(math.pow(4,3))   # 4的三次方 #幂运算    函数返回浮点型,幂运算返回整形 print(4**3) #fabs()   对一个数值获取他的绝对值    返回的也 ...