1,jQuery EasyUI中easyui-tree特定的JSON数据格式

 [
{"id":1,"text":"某公司","children":[
{"id":2,"text":"生产部"},
{"id":4,"text":"质检部","children":[
{"id":3,"text":"销售部"},
{"id":5,"text":"后勤部"},
{"id":6,"text":"人事部"},
{"id":7,"text":"财务部"},
{"id":8,"text":"IT部"}]
}]
}
]

2,从数据库中查询出来的数据保存在一个List中。

其中字段Parent_Department_ID表明该节点的父节点。

则在数据库中查询出来的数据保存在List中对应数据结构中树的双亲表示法。对该树进行遍历的同时生成相应的JSON代码。

3,根据上述思想进行的具体实现

 
public string GetDepartmentTree()
 {<br>            //查询数据库,数据保存在List中
     List<department> queryDepart=_departmentService.LoadEntities(u=>true).ToList<department>();
     string departmentTree=null;
//遍历整个树,寻找根节点
     foreach (department d in queryDepart)
     {
         if (d.Parent_Department_ID == -1)
         {
             departmentTree="\"id\":"+d.Department_ID+",\"text\":\""+d.Department_Name+"\",";
             <br>            //调用FindChild方法,开始遍历整个树,寻找当前节点的子节点。   
             string child = FindChild(d.Department_ID, queryDepart);
             if (child != null)
             {
                 departmentTree += child;
             }
 
             departmentTree = "[{" + departmentTree + "}]";
         }
     }
 
     return departmentTree;
 }
 
 private string FindChild(int id, List<department> queryDepart)
 {
     bool flag = false;
     string departmentChild =null;
     foreach (department d in queryDepart)
     {
         string anotherChild = null;
         if (d.Parent_Department_ID == id)//寻找到子节点
         {<br>           
             anotherChild = "\"id\":" + d.Department_ID + ",\"text\":\"" + d.Department_Name + "\",";
             <br>            string child = FindChild(d.Department_ID, queryDepart);
             if (child != null)
             {
               
                 anotherChild = anotherChild + child ;
             }
             if (anotherChild[anotherChild.Length - 1] == ',')
             {
                 anotherChild = anotherChild.Remove(anotherChild.Length - 1);
             }
             anotherChild = "{" + anotherChild + "}";
 
             departmentChild += anotherChild+",";
         }
         else
         {
             flag = false;
         }           
 
     }
     if (departmentChild != null)
     {
         departmentChild = departmentChild.Remove(departmentChild.Length - 1);
         departmentChild = "\"children\":[" + departmentChild + "]";
     }
 
     return departmentChild;
 
 }
 
  

jQuery EasyUI:根据数据库内容生成适合于easyui-tree的JSON数据格式的更多相关文章

  1. JQuery DataTables Editor---页面内容修改&&数据库信息修改 (2)

    接上篇博文,详细说一下js代码以及JQuery DataTables Editor---页面内容修改&&数据库信息修改遇到的问题和解决办法. 1.关于dialog 初始化: $(&qu ...

  2. JQuery DataTables Editor---页面内容修改&&数据库信息修改 (1)

    我们使用jquery datatables 不光是为了对数据的展示,同时需要对数据惊行简单的操作,这个操作分为两个部分:1.页面内容的修改:2.对应的数据库信息的修改. 前一篇博文介绍了页面级的操作, ...

  3. jQuery EasyUI中DataGird动态生成列的方法

    EasyUI中使用DataGird显示数据列表中,有时需要根据需要显示不同的列,例如,在权限管理中,不同的用户登录后只能查看自己权限范围内的列表字段,这就需要DataGird动态组合列,下面介绍Eas ...

  4. 用C#从数据库动态生成AdminLTE菜单的一种方法

    当前的应用设计风格趋于Flat扁平化,很多基于BootStrap实现了很多UI非常漂亮的管理界面(Bootstrap admin template). 此核心文件开源在Github:https://g ...

  5. paip.gui控件tabs控件加载内容的原理以及easyui最佳实现

    paip.gui控件tabs控件加载内容的原理以及easyui最佳实现 //////////////tabs控件的加载 同form窗体一样,俩个方式 两个方式:一个是url,简单的文本可以使用这个,不 ...

  6. eclipse从数据库逆向生成Hibernate实体类

    做项目必然要先进行数据库表设计,然后根据数据库设计建立实体类(VO),这是理所当然的,但是到公司里做项目后,让我认识到,没有说既进行完数据库设计后还要再“自己”建立一变VO.意思是,在项目设计时,要么 ...

  7. 使用T4为数据库自动生成实体类

    T4 (Text Template Transformation Toolkit) 是一个基于模板的代码生成器.使用T4你可以通过写一些ASP.NET-like模板,来生成C#, T-SQL, XML ...

  8. [转]eclipse借助hibernate tool从数据库逆向生成Hibernate实体类

    如何从数据库逆向生成Hibernate实体类呢??? 1. 首先,要在eclipse中采用自带的数据库管理器(Data Management),连通你的数据库: 然后选择数据库,这里用的oracle, ...

  9. 为什么使用dojo?dojo与jquery有什么不同?dojo适合什么开发场景?

    首先介绍一下dojo的特性: 1.Dojo是一个符合AMD规范的企业级框架(dojo是一个重量级框架) 2.Dojo全面支持异步加载JS机制(即:支持通过require异步加载JS模块,通过defin ...

随机推荐

  1. MVC SSO登陆 的麻烦事~

    前段时间用MVC + Redis 做session搞了个简单的单点登录Web站.真是日了狗的问题多. 今天正好睡不着,做个备忘笔记>_< 实现方法很简单,无非就是从重载个Controlle ...

  2. 硬件初始化,nand flash固化操作,系统启动简单流程

    2015.3.27星期五 晴 链接脚本定义代码的排放顺序 硬件系统初始化:一:arm核初始化:(里面有指令)初始化ARM核的时候需要看arm核的手册指令:1.异常向量(最起码有个复位异常,初始化模式- ...

  3. 【LeetCode】Single Number I & II & III

    Single Number I : Given an array of integers, every element appears twice except for one. Find that ...

  4. 【Fine原创】常见的HTTP错误码的具体含义整理

    常见的HTTP错误码的具体含义     "100" : Continue   客户端应当继续发送请求. "101" : witching Protocols   ...

  5. Huffman编码(测试源代码)

    1.此程序为c++程序 2.以下代码可实现手动输入,即去掉代码中的/*...*/注释符,并同时去掉赋值代码段 3.源代码 #include<iostream> using namespac ...

  6. wamp apache 的虚拟机配置 多域名访问 的 三部曲

    wamp apache 的虚拟机配置 多域名访问 的 三部曲 wamp:       1:C:\WINDOWS\system32\drivers\etc->hosts         加入自己的 ...

  7. Ruby on Rails搭建环境出现的问题及解决方案

    问题一:在win7系统64位环境下执行cmd命令:rails new testapp 之后,回报如下图错误:Gem:installer::ExtensionBuildError: ERROR:Fail ...

  8. .htaccess详解及.htaccess参数说明【转】

    目录(?)[-] htaccess 详解 htaccess rewrite 规则详细说明 RewriteEngine OnOff RewriteBase URL-path RewriteCond Te ...

  9. 29 个你必须知道的 Linux 命令

    虽然Linux发行版支持各种各样的饿GUI(graphical user interfaces),但在某些情况下,Linux的命令行接口(bash)仍然是简单快速的.Bash和 Linux Shell ...

  10. NLP中word2vec的CBOW模型和Skip-Gram模型

    参考:tensorflow_manual_cn.pdf     Page83 例子(数据集): the quick brown fox jumped over the lazy dog. (1)CBO ...