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. viewBox A-Z滚动样式

    效果图:       代码实现 (其中使用了ionic框架...) html 代码: <ion-content class='page-location'> <div class=' ...

  2. 项目中 poi 导出 出现html特殊符号的实体 (已解决)

    导出excel 时出现 类似这样的>  符号 , 大概是存到数据库也是这样,然后jsp解析可以解析出来,但是java不认得,需要个人写出解析方法. 废话不说,贴码: /** *转换html特殊符 ...

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

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

  4. JavaScript和Java之间的关系

    今天来简单而又详细地说说JavaScript和Java的关系. 开门见山总结性一句话,它们之间的关系 = 雷锋和雷峰塔之间的关系,换句话说:它们之间没什么关系. 但往往有不少初学者甚至中级者认为它们之 ...

  5. 07——为多态基类声明为virtual析构函数

    当基类确定被继承的时候,析构函数声明为virtual是必须的 当返回的派生类的指针或引用的时候,调用析构函数容易发生内存泄漏 当基类作为抽象类使用,声明pure virtual析构函数 析构函数的顺序 ...

  6. 解决Android应用安装快完毕时提示签名冲突

    最近开发了一个Android手机应用,自己用Eclipse调试安装没问题,使用其他人调试生成的bin下的apk就会出现问题,安装到最后提示"安装签名冲突"错误,想了一下估计是没有给 ...

  7. mac上使用imagealpha命令对图片进行压缩批处理

    #! /bin/bash #BASE_DIR="/Users/jiading/Documents/basepng"; #OUTPUT_DIR="/Users/jiadin ...

  8. How to build the theory on a specific system - may be just a brain storm[clue found]

    Motivation An observation and thoughts on reading Tel G.. Introduction to Distributed Algorithm(seco ...

  9. LintCode Edit Distance

    LintCode Edit Distance Given two words word1 and word2, find the minimum number of steps required to ...

  10. (整理) Json语法规则

    { "staff":[ {"name":"haha1", "age":20}, {"name":&q ...