如何使用dhtmlxtree 和Json 数据格式创建和使用一棵tree
2014-02-04 09:54
656 查看
(声明:本人只是个不起眼的小菜鸟,若哪里有疏忽或者出错的地方还请各位海涵并且帮忙改正,最主要希望自己的学习中遇到的问题能很好的帮助你们)
依赖的js: dhtmlxcommon.js dhtmlxtree.js
dhtmlxtree_json.js
Json:(JavaScript Object Notation) 是一种轻量级的数据交换格式,详细介绍请看:Json介绍
第一种:名称 / 值对:{
第二种:表示数组:
本文tree的显示使用的格式如下:
好了,上面的数据格式为了创建一棵树所用到的Json数据格式,,如果你看懂了,接下来就好做了。
第三步:
e:在Jsp<Head>标签里引入必要的Js和css:
<head>
<script src="${ctx}/dhtmlxtree/dhtmlxcommon.js"></script>
<script src="${ctx}/dhtmlxtree/dhtmlxtree.js"></script>
<script src="${ctx}/dhtmlxtree/dhtmlxtree_json.js"></script>
<link rel="stylesheet" type="text/css"
href="${ctx}/dhtmlxtree/dhtmlxtree.css" />
<script type="text/javascript">
$(function(){
var tree2 = new dhtmlXTreeObject("treeboxbox_tree2","100%","100%",0);
tree2.setImagePath("${ctx}/dhtmlxtree/csh_vista/");
tree2.enableCheckBoxes(1);
tree2.enableThreeStateCheckboxes(true);
//tree2.loadXML("${ctx}/dtree/tree3.xml");
//用EL表达式获取json数据
var json = ${json};
tree2.loadJSONObject(json);
});
</script>
</head>
这样一棵树就能显示出来了。
注意:树显示不出来的原因可能有以下几点:
1:div 没有id
2:数据格式没有拼对,多打断点,查看最后拼接的字符串是否是想要的Json数据格式,或者百度搜索Json在线解析,然后把断点获得字符串复制,就能进行检查了,这个最方便,点击进入:JSon在线解析
3:还有就是引入js的顺序,我在实现的时候这几个问题都遇到过
好啦,恭喜你树已经出来了,那么欲知在后台如何获取到前台显示树的id请看下一篇文档。
先简单介绍下dhtmlxtree:
dthmlxTree是一个功能丰富的第三方JavaScript树菜单,它能够使用户快速添加一个外观非常漂亮的,基于Ajax技术的网页上的分层树。树视图支持在线节点编辑、现行的拖放功能、三态复选框以及更多功能。效果模型展示:
依赖的Jar包:dom4j-1.6.1.jar
dhtmlxtree_json.js
Json:(JavaScript Object Notation) 是一种轻量级的数据交换格式,详细介绍请看:Json介绍
主要说明下Json使用的数据格式:
第一种:名称 / 值对:{
"firstName": "Brett", "lastName":"McLaughlin", "email": "aaaa" }
第二种:表示数组:本文tree的显示使用的格式如下:
好了,上面的数据格式为了创建一棵树所用到的Json数据格式,,如果你看懂了,接下来就好做了。
步骤:
第一步:导包
第二步:在Jsp页面里创建一个div用来显示树的地方
<div id="treeboxbox_tree2" style="width: 250px; height: 218px; background-color: #fffff5; border: 1px solid Silver;"></div>
第三步:
a:Action类里查询出所需的数据,(Dao,DaoImpl和Service层得写个查询方法吧)
b:把查询的数据拼接成上面的Json数据格式,(使用StringBuffer或者StringBuilder的append()方法拼接,这俩使用哪个都行,StringBuilder效率最高)
c:使用toString()方法转换成String类型
d:放到ActionContext中
拼接方法示例:List<Column> list = this.roleManageService.getParentNode(); StringBuilder sb = new StringBuilder(); sb.append("{id:\"0\",text:\"根\", item:["); for (int i = 0; i < 6; i++) { Column col = list.get(i); if (i > 0) { sb.append(","); } sb.append("{id:\"" + col.getId() + "\",text:\"" + col.getName() + "\""); Set<Column> subs = col.getChilds(); if (subs != null && subs.size() > 0) { sb.append(",item:["); int j = 0; for (Column sub : subs) { if (j++ > 0) { sb.append(","); } String subId = col.getId() + "-" + sub.getId(); sb.append("{id:\"" + subId + "\",text:\"" + sub.getName() + "\""); Set<Privilege> privs = sub.getPrivileges(); if (privs != null && privs.size() > 0) { sb.append(",item:["); int k = 0; for (Privilege priv : privs) { if (k++ > 0) { sb.append(","); } sb.append("{id:\"f-" + sub.getId() + "-" + priv.getId() + "\",text:\"" + priv.getName() + "\"}"); } sb.append("]"); } sb.append("}"); } sb.append("]"); } sb.append("}"); } sb.append("]}"); sb.toString();
e:在Jsp<Head>标签里引入必要的Js和css:
<head>
<script src="${ctx}/dhtmlxtree/dhtmlxcommon.js"></script>
<script src="${ctx}/dhtmlxtree/dhtmlxtree.js"></script>
<script src="${ctx}/dhtmlxtree/dhtmlxtree_json.js"></script>
<link rel="stylesheet" type="text/css"
href="${ctx}/dhtmlxtree/dhtmlxtree.css" />
<script type="text/javascript">
$(function(){
var tree2 = new dhtmlXTreeObject("treeboxbox_tree2","100%","100%",0);
tree2.setImagePath("${ctx}/dhtmlxtree/csh_vista/");
tree2.enableCheckBoxes(1);
tree2.enableThreeStateCheckboxes(true);
//tree2.loadXML("${ctx}/dtree/tree3.xml");
//用EL表达式获取json数据
var json = ${json};
tree2.loadJSONObject(json);
});
</script>
</head>
这样一棵树就能显示出来了。
注意:树显示不出来的原因可能有以下几点:
1:div 没有id
2:数据格式没有拼对,多打断点,查看最后拼接的字符串是否是想要的Json数据格式,或者百度搜索Json在线解析,然后把断点获得字符串复制,就能进行检查了,这个最方便,点击进入:JSon在线解析
3:还有就是引入js的顺序,我在实现的时候这几个问题都遇到过
好啦,恭喜你树已经出来了,那么欲知在后台如何获取到前台显示树的id请看下一篇文档。
相关文章推荐
- 如何使用PHP调用API接口( 如何POST一个JSON格式的数据给Restful服务)
- SpringMVC中在使用@ResponseBody时如何将Date类型的日期返回指定格式的json数据
- 扩展了一棵jquery的树插件SimpleTree,加上了json格式数据异步加载能力
- 如何使用json的数据格式给Highcharts赋值
- 如何在FastReport.Net中使用JSON格式的数据
- 如何使用JSON格式 POST数据到服务器
- 如何使用fastJson来解析JSON格式数据和生成JSON格式数据
- 如何在Hive中使用Json格式数据
- 如何使用fastJson来解析JSON格式数据和生成JSON格式数据
- 使用原生的ajax如何去提交json格式的数据
- 使用Boost.PropertyTree处理XML、JSON和INI数据 - 做一个优雅的程序员 - 博客频道 - CSDN.NET
- JS创建对象最常用的方法就是使用JSON格式的语法
- 很好用的Google 开源项目Gson在java中解析和创建json格式的数据
- 如何在.NET MVC中使用jQuery并返回JSON数据
- Ajax中XML和json两种数据格式的使用和比较
- 使用SqlAlchemy时如何方便的取得dict数据、dumps成Json
- 使用 C++ 处理 JSON 数据交换格式
- Struts2引用的jar包版本为2.0.9的,该版本没有json包,如何使用ajax返回json数据到页面
- ajax请求返回Json格式数据如何循环输出成table形式
- 如何设置Jmeter的响应数据为“json”格式