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 ...
随机推荐
- SQL-表的各种查查查
use Student gocreate table student1(code int,name varchar (20),sex char(10),tizhong decimal(18,1),ag ...
- 二叉树的实现与一些基本操作(C++环境)
#include<cstdio>#include<cstdlib>#include<iostream>#include<cstring>using na ...
- sudo apt-get install apache2 php7.0 php7.0-mysql mysql-server
sudo apt-get install apache2 php7.0 php7.0-mysql mysql-server sudo apt-get install libapache2-mod-ph ...
- Oracle----SQL语句积累 (Oracle 导入 dmp文件)
Oracle----SQL语句积累 (Oracle 导入 dmp文件) Oracle SQL PL 导入dum文件 1.数据库DBA权限: 注意:这个是在cmd命令行中直接输入,不需要进入Oracl ...
- 软件工程总结(Final)
又到了学期末了,此时此刻软件工程课业接近尾声了.时间过得太快,仿佛昨天这学期的课才开始, 开学时,老师让我们提出了不少对这门课的问题和疑惑,通过一学期的努力学习,我可以试着解开我自己的疑问了. 下面是 ...
- Ruby on Rails搭建环境出现的问题及解决方案
问题一:在win7系统64位环境下执行cmd命令:rails new testapp 之后,回报如下图错误:Gem:installer::ExtensionBuildError: ERROR:Fail ...
- NPOI格式设置1
using NPOI.SS.UserModel; using NPOI.HSSF.UserModel; //创建Execl IWorkbook hssfworkbook =new HSSFWorkbo ...
- js 文本框只能输入数字
<input type="text" value="" style="ime-mode:Disabled" onkeyup=&quo ...
- 《深入浅出Node.js》第7章 网络编程
@by Ruth92(转载请注明出处) 第7章 网络编程 Node 只需要几行代码即可构建服务器,无需额外的容器. Node 提供了以下4个模块(适用于服务器端和客户端): net -> TCP ...
- 使用navigator.geolocation来获取用户的地理位置信息
使用navigator.geolocation来获取用户的地理位置信息 W3C 中新添加了一个名为 Geolocation的 API 规范,Geoloaction API的作用就是通过浏览器获取用户的 ...