Ztree异步树加载
JSP代码片段
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript"
src="${ctx}/thscommon/javascript/jquery-1.7.2.min.js"></script>
<script type="text/javascript"
src="${ctx}/win/javascript/jquery.ztree.core-3.5.js"></script>
<link rel="stylesheet" href="${ctx}/win/css/zTreeStyle/zTreeStyle.css"
type="text/css">
<title>Insert title here</title> <script type="text/javascript">
var setting = {
/* check : {
enable : true,
chkStyle : "radio",
radioType: "id"
}, */
async : {
enable : true,
url : "${ctx}/common/tree/river!getNodeData.action",
autoParam : [ "id" ],
dataFilter : filter
},
callback : {
//beforeClick: beforeClick,
onClick : onClick
}
}; function filter(treeId, parentNode, childNodes) {
if (!childNodes)
return null;
for ( var i = 0, l = childNodes.length; i < l; i++) {
childNodes[i].name = childNodes[i].name.replace(/\.n/g, '.');
}
return childNodes;
} function onClick(event, treeId, treeNode, clickFlag) {
var win = art.dialog.open.origin;//来源页面
win.snstSet(treeNode.id, treeNode.name,$("#idx").val());
$.dialog.close();
} $(document).ready(function() {
$.fn.zTree.init($("#tree"), setting);
});
//-->
</script>
</head>
<body>
<div class="zTreeDemoBackground left">
<ul id="tree" class="ztree"></ul>
</div>
<input type="hidden" id="idx" name="idx" value="${idx}">
</body>
</html>
action处理如下
public void getNodeData() {
List<Map<String, Object>> nodedata = service.getNodes(this.getId());
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
Map<String, Object> tmp = null;
for (Map<String, Object> map : nodedata) {
tmp = new HashMap<String, Object>();
tmp.put("id", map.get("id"));
tmp.put("name", map.get("name"));
tmp.put("isParent",
Integer.valueOf(map.get("cnt").toString()) > 0 ? true
: false);
list.add(tmp);
}
try {
PrintWriter out;
JSONObject jo = new JSONObject();
response.setCharacterEncoding("gbk");
response.setContentType("text/html; charset=GBK");
out = response.getWriter();
System.out.println(JSONArray.fromObject(list).toString());
out.print(JSONArray.fromObject(list).toString());
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
Service处理如下
public List<Map<String, Object>> getNodes(String id) {
return dao.getNodes(id);
}
Dao处理如下
public List<Map<String, Object>> getNodes(String id) {
List<String> params = new ArrayList<String>();
StringBuffer querySQL = new StringBuffer();
querySQL.append("SELECT tt.wsystemcode id,tt.wsystemname name");
querySQL.append(",(SELECT COUNT (1) cnt FROM datacenter_v3.tcode.t_cod_wsystem t WHERE t.parentcode = tt.wsystemcode) cnt");
querySQL.append(" FROM datacenter_v3.tcode.t_cod_wsystem tt");
querySQL.append(" WHERE 1=1");
if(Tool.isNull(id)){
querySQL.append(" and tt.parentcode is null");
}else{
querySQL.append(" and tt.parentcode = ?");
params.add(id);
}
querySQL.append(" GROUP BY tt.wsystemcode,tt.wsystemname");
querySQL.append(" ORDER BY tt.wsystemcode");
return search(querySQL.toString(), params.toArray());
}
Ztree异步树加载的更多相关文章
- 爱上MVC3~MVC+ZTree大数据异步树加载
回到目录 理论部分: MVC+ZTree:指在.net MVC环境下进行开发,ZTree是一个jquery的树插件 大数据:一般我们系统中,有一些表结构属于树型的,如分类,地域,菜单,网站导航等等,而 ...
- MVC小系列(十四)【MVC+ZTree大数据异步树加载】
ZTree是一个jquery的树插件可以异步加载 第一步定义一个标准的接口(指的是与ztree默认的数据元素保持一致) /// <summary> /// ZTree数据结构 /// &l ...
- MVC+ZTree大数据异步树加载
实例部分: 首先是为ZTree提供的数据规范,定义一个标准的接口,这样对于前台调用是清楚的,简单的,因为它返回的JSON数据将与ZTree默认的数据元素保持一致 /// <summary> ...
- Jquery插件 之 zTree树加载
原文链接:https://blog.csdn.net/jiaqu2177/article/details/80626730 zTree树加载 zTree 是一个依靠 jQuery 实现的多功能 “树插 ...
- flask+sqlite3+echarts3+ajax 异步数据加载
结构: /www | |-- /static |....|-- jquery-3.1.1.js |....|-- echarts.js(echarts3是单文件!!) | |-- /templates ...
- javascript 异步模块加载 简易实现
在javascript是没有类似java或其他语言的模块概念的,因此也不可能通过import或using等关键字来引用模块,这样造成了复杂项目中前端代码混乱,变量互相影响等. 因此在复杂项目中引入AM ...
- Angularjs 异步模块加载项目模板
ng-lazy-module-seed(Angularjs 异步模块加载项目模板) 相信做过SPA项目的朋友都遇到过这个问题:页面初始化时需要加载文件太大或太多了,许多文件加载后很可能不会运行到,这是 ...
- 页面全部加载完毕和页面dom树加载完毕
dom树加载完毕 $(document).ready()//原生写法document.ready = function (callback) { ///兼容FF,Google ...
- Dojo初探之1:AMD规范,编写符合AMD规范(异步模块加载机制)的模块化JS(其中dojo采用1.11.2版本)
一.AMD规范探索 1.AMD规范(即异步模块加载机制) 我们在接触js的时候,一般都是通过各种function来定义一些方法,让它们帮我们做一些事情,一个js可以包含很多个js,而这些functio ...
随机推荐
- MSSQL查询连接数
SELECT * FROM [Master].[dbo].[SYSPROCESSES] WHERE [DBID] IN ( SELECT [DBID] FROM [Master].[dbo].[SYS ...
- juce中的引用计数
这个类提供了最基本的引用计数管理,界面库中,经常都需要消息发送,而带来的后果就是不知道消息中包含的对象是否还存在,如果不能很好管理的话就容易出现访问销毁了的对象这样的情况,所以,juce的界面无素也基 ...
- gtest的Linux使用(Google test)
GTest是Google开发的跨平台而且开源的C++单元测试框架,很好很强大. 下载地址:https://code.google.com/p/googletest/ . 关于GTest在Windows ...
- sql防注入代码
function defend_sql($string, $force = 1) { $preg = "select|insert|and|or|update|delete|\'|\/\*| ...
- js 全局变量
使用cookies可以设置全局变量 ,由于每次刷新变量都会为初始值,cookies可以作为全局变量的容器
- JavaScript装逼指南
如何写JavaScript才能逼格更高呢?怎样才能组织JavaScript才能让别人一眼看出你不简单呢?是否很期待别人在看完你的代码之后感叹一句“原来还可以这样写”呢?下面列出一些在JavaScrip ...
- 【grunt整合版】学会使用grunt打包前端代码
grunt 是一套前端自动化工具,一个基于nodeJs的命令行工具,一般用于:① 压缩文件② 合并文件③ 简单语法检查 对于其他用法,我还不太清楚,我们这里简单介绍下grunt的压缩.合并文件,初学, ...
- 用Servlet实现聊天室设计
实验一 Servlet编程 一.实验目的 1.熟悉Java EE编程环境JDK和NetBeans的安装,配置和使用: 2.掌握Servlet的编写及部署: 3.掌握Servlet的工作原理和编程接 ...
- php的系统常量
认识一下系统常量 系统常量是PHP已经定义好的常量,我们可以直接拿来使用,常见的系统常量有: (1)__FILE__ :php程序文件名.它可以帮助我们获取当前文件在服务器的物理位置. (2)__LI ...
- 使用Notepad++开发python配置笔记
这是我在python学习过程中,收集整理的一些notepadd++环境配置方法. 1.配置制表符 Notepad++ ->"设置"菜单->"首选项" ...