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. echo, print, print_r

    echo 不是函数,没有返回值,因此只是用作输出的话会更快 print 和 print_r 有返回值,区别在于: print 用于打印一个字符串,print_r 可以打印一些复合类型,如: $arr= ...

  2. 将时区格式的时间转换为易于阅读的标准格式"yyyy-MM-dd"

    Date的显示格式就是时区格式, String 标准格式 = new SimpleDateFormat("yyyy--MM--dd").format(new Date());

  3. 安卓--Toast

    protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWind ...

  4. Eclipse/JavaWeb (三)三大框架之Spring框架 持续更新中...

    (一)发展历史 现在我们有三个层了,可是每层之间的调用是怎样的呢?比如显示层的struts需要调用一个业务类,就需要new一个业务类出来,然后使用:业务层需要调用持久层的类,也需要new一个持久层类出 ...

  5. Centos安装完MariaDB后启动不了 MySQL is not running, but lock file (/var/lock/subsys/mysql) exists

    [root@admin-node subsys]# service mysql startStarting MySQL. ERROR! [root@admin-node subsys]# servic ...

  6. Discuz对不起,您安装的不是正版应用的解决办法

    方法三(2014年新增最简单方法.) .打开/source /function/function_cloudaddons.php这个文件,2.搜索:cloudaddons_validator,3.一般 ...

  7. Ansible-Tower快速入门-5.导入许可【翻译】

    导入许可 Tower需要一个有效的许可才可以正常运行,当你输入你的相关信息得以下载tower时,你应该有接收到一封包含许可的email邮件,你也可以直接从ansible获取许可. 如果你不能获取许可或 ...

  8. c++ 顺序容器适配器

    第一次看到stack,以为它是一个和vector同等地位的容器,其实不是 官方解释:stacks are a type of container adaptor, specifically desig ...

  9. html中meta的介绍

    前言 meta是html语言head区的一个辅助性标签.也许你认为这些代码可有可无.其实如果你能够用好meta标签,会给你带来意想不到的效果,meta标签的作用有:搜索引擎优化(SEO),定义页面使用 ...

  10. Page 指令的各个属性及其功能

    转载:http://www.cnblogs.com/elleniou/archive/2012/09/09/2678101.html 语法规则: <@%page attribute1=”valu ...