jQuery EasyUI:根据数据库内容生成适合于easyui-tree的JSON数据格式
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数据格式的更多相关文章
- JQuery DataTables Editor---页面内容修改&&数据库信息修改 (2)
接上篇博文,详细说一下js代码以及JQuery DataTables Editor---页面内容修改&&数据库信息修改遇到的问题和解决办法. 1.关于dialog 初始化: $(&qu ...
- JQuery DataTables Editor---页面内容修改&&数据库信息修改 (1)
我们使用jquery datatables 不光是为了对数据的展示,同时需要对数据惊行简单的操作,这个操作分为两个部分:1.页面内容的修改:2.对应的数据库信息的修改. 前一篇博文介绍了页面级的操作, ...
- jQuery EasyUI中DataGird动态生成列的方法
EasyUI中使用DataGird显示数据列表中,有时需要根据需要显示不同的列,例如,在权限管理中,不同的用户登录后只能查看自己权限范围内的列表字段,这就需要DataGird动态组合列,下面介绍Eas ...
- 用C#从数据库动态生成AdminLTE菜单的一种方法
当前的应用设计风格趋于Flat扁平化,很多基于BootStrap实现了很多UI非常漂亮的管理界面(Bootstrap admin template). 此核心文件开源在Github:https://g ...
- paip.gui控件tabs控件加载内容的原理以及easyui最佳实现
paip.gui控件tabs控件加载内容的原理以及easyui最佳实现 //////////////tabs控件的加载 同form窗体一样,俩个方式 两个方式:一个是url,简单的文本可以使用这个,不 ...
- eclipse从数据库逆向生成Hibernate实体类
做项目必然要先进行数据库表设计,然后根据数据库设计建立实体类(VO),这是理所当然的,但是到公司里做项目后,让我认识到,没有说既进行完数据库设计后还要再“自己”建立一变VO.意思是,在项目设计时,要么 ...
- 使用T4为数据库自动生成实体类
T4 (Text Template Transformation Toolkit) 是一个基于模板的代码生成器.使用T4你可以通过写一些ASP.NET-like模板,来生成C#, T-SQL, XML ...
- [转]eclipse借助hibernate tool从数据库逆向生成Hibernate实体类
如何从数据库逆向生成Hibernate实体类呢??? 1. 首先,要在eclipse中采用自带的数据库管理器(Data Management),连通你的数据库: 然后选择数据库,这里用的oracle, ...
- 为什么使用dojo?dojo与jquery有什么不同?dojo适合什么开发场景?
首先介绍一下dojo的特性: 1.Dojo是一个符合AMD规范的企业级框架(dojo是一个重量级框架) 2.Dojo全面支持异步加载JS机制(即:支持通过require异步加载JS模块,通过defin ...
随机推荐
- viewBox A-Z滚动样式
效果图: 代码实现 (其中使用了ionic框架...) html 代码: <ion-content class='page-location'> <div class=' ...
- 项目中 poi 导出 出现html特殊符号的实体 (已解决)
导出excel 时出现 类似这样的> 符号 , 大概是存到数据库也是这样,然后jsp解析可以解析出来,但是java不认得,需要个人写出解析方法. 废话不说,贴码: /** *转换html特殊符 ...
- wamp apache 的虚拟机配置 多域名访问 的 三部曲
wamp apache 的虚拟机配置 多域名访问 的 三部曲 wamp: 1:C:\WINDOWS\system32\drivers\etc->hosts 加入自己的 ...
- JavaScript和Java之间的关系
今天来简单而又详细地说说JavaScript和Java的关系. 开门见山总结性一句话,它们之间的关系 = 雷锋和雷峰塔之间的关系,换句话说:它们之间没什么关系. 但往往有不少初学者甚至中级者认为它们之 ...
- 07——为多态基类声明为virtual析构函数
当基类确定被继承的时候,析构函数声明为virtual是必须的 当返回的派生类的指针或引用的时候,调用析构函数容易发生内存泄漏 当基类作为抽象类使用,声明pure virtual析构函数 析构函数的顺序 ...
- 解决Android应用安装快完毕时提示签名冲突
最近开发了一个Android手机应用,自己用Eclipse调试安装没问题,使用其他人调试生成的bin下的apk就会出现问题,安装到最后提示"安装签名冲突"错误,想了一下估计是没有给 ...
- mac上使用imagealpha命令对图片进行压缩批处理
#! /bin/bash #BASE_DIR="/Users/jiading/Documents/basepng"; #OUTPUT_DIR="/Users/jiadin ...
- 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 ...
- LintCode Edit Distance
LintCode Edit Distance Given two words word1 and word2, find the minimum number of steps required to ...
- (整理) Json语法规则
{ "staff":[ {"name":"haha1", "age":20}, {"name":&q ...