<!DOCTYPE html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>jOrgChart - A jQuery OrgChart Plugin</title>
<link rel="stylesheet" href="css/bootstrap.min.css"/>
<link rel="stylesheet" href="css/jquery.jOrgChart.css"/>
<link rel="stylesheet" href="css/custom.css"/>
<!-- jQuery includes -->
<script type="text/javascript" src="jquery-1.7.2.min.js"></script>
<script src="jquery.jOrgChart.js"></script>
<script>
jQuery(document).ready(function () {
loadtree();
});
//menu_list为json数据
//parent为要组合成html的容器
function showall(menu_list, parent) {
for (var menu in menu_list) {
//如果有子节点,则遍历该子节点
if (menu_list[menu].children.length > 0) {
//创建一个子节点li
var li = $("<li></li>");
//将li的文本设置好,并马上添加一个空白的ul子节点,并且将这个li添加到父亲节点中
$(li).append(" <a href='javascript:void(0)' onclick='xx(" + menu_list[menu].id + ");'>" + menu_list[menu].name + "</a>").append("<ul></ul>").appendTo(parent);
//将空白的ul作为下一个递归遍历的父亲节点传入
showall(menu_list[menu].children, $(li).children().eq(1));
}else {
//如果该节点没有子节点,则直接将该节点li以及文本创建好直接添加到父亲节点中
$("<li></li>").append(" <a href='javascript:void(0)' onclick='defineFunc(" + menu_list[menu].id + ");'>" + menu_list[menu].name + "</a>").appendTo(parent);
}
}
}
function loadtree() {
$.ajax({
url: '<%=request.getContextPath()%>/batchIssueManage.do?method=jsonJorg',
type : "post",
error: function () { alert('Error loading PHP document'); },
dataType : 'json',
success: function (result) {
// var json = eval("["+result+"]");//这里中间的括号为中括号 使数据类似[{"username":"张三","content":"沙发"}];的格式
var showlist = $("<ul id='org' style='display:none'></ul>");
showall(result, showlist);
//将生成好的固定格式的ul
$("#f").append(showlist);
$("#org").jOrgChart();
}
});
}
function loadtree111() {
var res = [{
"id": 1,
"name": "根节点",
"children": [
{
"id": 2,
"name": "第二层1",
"data": "",
"children": ""
},
{
"id": 3,
"name": "第二层2",
"data": "",
"children": ""
}
]
}];
//var json = eval("("+res+")");
var showlist = $("<ul id='org' style='display:none'></ul>");
showall(res, showlist);
//将生成好的固定格式的ul
$("#f").append(showlist);
$("#org").jOrgChart();
/* $("#org").jOrgChart({
chartElement : "#chart",
dragAndDrop : false
}); */
}
function defineFunc(id){
alert(id+",ddd");
}
</script>
</head>
<body id="f">
<div class="topbar">
<div class="topbar-inner">
<div class="container">
<a class="brand" href="#">jQuery Organisation Chart</a>
</div>
</div>
</div>
<div id="chart" class="orgChart"></div>
</body>
</html>
后端代码:
public ActionForward jsonJorg1(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
//递归查询数据库效率低下,考虑其他的方式
List l2 = new ArrayList();
Map m21 = new HashMap();
m21.put("id", "5");
m21.put("name", "第三层1");
m21.put("data", "");
m21.put("children", "");
Map m22 = new HashMap();
m22.put("id", "6");
m22.put("name", "第三层2");
m22.put("data", "");
m22.put("children", "");
l2.add(m22);
l2.add(m21);
Map m1 = new HashMap();
m1.put("id", "2");
m1.put("name", "第一层1");
m1.put("data", "");
m1.put("children", l2);
Map m2 = new HashMap();
m2.put("id", "3");
m2.put("name", "第二层2");
m2.put("data", "");
m2.put("children", "");
Map m3 = new HashMap();
m3.put("id", "4");
m3.put("name", "第二层3");
m3.put("data", "");
m3.put("children","");
List l = new ArrayList();
l.add(m1);
l.add(m2);
l.add(m3);
Map m = new HashMap();
m.put("id", "1");
m.put("name", "232323");
m.put("data", "");
m.put("children", l);
JSONArray jsonAry = JSONArray.fromObject(m);
String jsonStr = jsonAry.toString();
response.setContentType("text/plain;charset=UTF-8");
//如果这里不输出json信息,前端form提交回调的success方法就不会执行
try {
response.getWriter().write(jsonStr);
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
相关推荐
计算机后端-Java-Java核心基础-第25章 集合02 08. Map中存储的key-value的特点.avi
计算机后端-Java-Java核心基础-第25章 集合02 14. Map中的常用方法1.avi
计算机后端-Java-Java核心基础-第25章 集合02 15. Map中的常用方法2.avi
计算机后端-Java-Java核心基础-第25章 集合02 07. Map接口及其多个实现类的对比.avi
本压缩包"计算机后端-Java-图解java设计模式笔记"提供了对Java设计模式的深入理解,通过图形化的方式帮助开发者更好地理解和应用这些模式。 1. **单例模式**:保证一个类只有一个实例,并提供一个全局访问点。常见...
本压缩包文件“java前后端代码生成【增量生成】,前后分离,后端使用spring-boot、mybatis、mapstruct.zip”显然聚焦于Java全栈开发的一个高效实践——自动代码生成,并且特别强调了增量生成和前后端分离的设计模式。...
本压缩包文件“java前后端代码生成【增量生成】,前后分离,后端使用spring-boot、mybatis、mapstruct、s.zip”主要涵盖了以下几个关键知识点: 1. **前后端分离**:这是一种常见的Web开发模式,前端负责用户界面和...
本文将深入探讨与“sql-map-2.dtd”和“sql-map-config-2.dtd”相关的知识点,以及它们在Ibatis中的作用。 Ibatis是一个轻量级的ORM(对象关系映射)框架,它允许开发者将SQL语句直接写在配置文件中,通过XML映射...
《newgateway-xdh-map-master_newgateway_xdh底图深色_地图插件_xdh-Map_》是一款专为newgateway框架设计的高级地图插件,旨在提供深色风格的底图,增强用户在视觉上的体验。这个插件适用于那些希望在自己的应用中...
请解释Java中的集合框架,包括List, Set, Map等接口及其常用实现类。 请解释Java中的泛型,以及它在编译时和运行时的作用。 请解释Java中的多线程编程,包括线程的创建、启动、同步和通信等概念。 ...
对于开发人员来说,这些库文件可能用于构建依赖GDAL和MapServer的应用;对于GIS专业人员,这些可执行文件则可以直接用于地图制作、数据转换和服务器部署。 总的来说,"release-1930-x64-gdal-3-7-1-mapserver-8-0-1...
配置 Route-Map 详解 Route-Map 是一种路由选择策略,允许 Network Administrator 根据不同的路由策略来选择路由。Route-Map 通常用于路由重发布、路由选择、路由过滤等场景。 配置 Route-Map 的步骤: 1. 配置...
1.vue-baidu-map在线地图代码不用改动,只用按照文档添加baidu-api.js和baidu-init.js,并在vue依赖包 node_modules文件找到,修改vue-baidu-map的 index.js文件 就能完成离线配置 2.jar包可以免费下载百度地图瓦片...
sql-map-config-2.dtd
release-1916-x64-gdal-3-7-mapserver-8-0.zip
在本文中,我们将深入探讨如何使用“uiw-react-baidu-map-master”这个开源项目来在React应用程序中集成百度地图。这个项目是专为React开发者设计的,它提供了一个简洁、高效的API,使得在React应用中添加百度地图...
C-MAPSS(Commercial Modular Aero-Propulsion System Simulation)是一个广泛应用在航空航天领域的模拟软件,它主要用于研究和设计飞机发动机的性能。这个数据集是针对涡轮发动机,特别是航天发动机的,提供了大量...
(amap-wx.js 从相关下载页面下载的 zip 文件 使用场景:uniapp和小程序使用高德地图(map)可以引用这个文件,getRegeo(获取当前地址),getDrivingRoute(驾车从开始位置到终点)计算距离和时间 适合人群:前端...
标题“release-1928-gdal-3-3-1-mapserver-7-6-4”和描述“C# gdal”暗示了这个压缩包可能包含与GDAL(Geospatial Data Abstraction Library)3.3.1版本和MapServer 7.6.4版本相关的C#开发资源。GDAL是一个开源的...
通过"ka-map-1.0-20070205.tar.gz"压缩包,开发者可以获得完整的源代码,从而实现对 Ka-Map 的个性化定制和集成,为GIS项目带来更佳的用户体验。无论是初学者还是经验丰富的开发者,都能从中受益,进一步提升GIS应用...