zTree的简单使用
理论可以看:http://www.cnblogs.com/shinhwazt/p/5828031.html
zTree包:链接:http://pan.baidu.com/s/1eR4xP6M 密码:w11x
zTree的使用依赖于js,所以要先引入js
<link href="${ctx}/js/plugins/zTree_v3-master/css/demo.css" rel="stylesheet">
<link href="${ctx}/js/plugins/zTree_v3-master/css/metroStyle/metroStyle.css" rel="stylesheet">
<script src="${ctx}/js/plugins/zTree_v3-master/js/jquery.ztree.core.js"></script>
<script src="${ctx}/js/plugins/zTree_v3-master/js/jquery.ztree.excheck.js"></script>
<script src="${ctx}/js/plugins/zTree_v3-master/js/jquery.ztree.exedit.js"></script>
我这个是简单数据模式
<div class="content_wrap" id="left" >
<input type="hidden" id="power_id" name="power_id" value="0" />
<input type="hidden" name="JsonArr" id="JsonArr" value=''>
<ul id="treeDemo" class="ztree" style="background: #FFFFFF;border: 0px ;height:100%;"></ul>
</div>
在对应的js中
$(function() {
log.initTree();
});
var log = {
initTree: function () {
$.ajax({
url : ctx + "/log/getDate.shtml",
type : 'post',
success : function(data) {
if (data.flag) {
var jsonstr = data.jsonArr;
$("#JsonArr").val(jsonstr);
var setting = {
data: {
simpleData: {
enable: true
}
},
callback: {
onClick: zTreeOnClick
}
};
$.fn.zTree.init($("#treeDemo"), setting,JSON.parse($("#JsonArr").val()));
//console.log("jsonstr----"+jsonstr)
//console.log("JSON.parse()----"+JSON.parse($("#JsonArr").val()));
} else {
layer.msg("操作失败,请重试!");
}
}
}); }
};
function zTreeOnClick(event, treeId, treeNode) {
$('#power_id').val(treeNode.id);
$('#log_table').bootstrapTable('refresh');
};
在controller中
@RequestMapping(value="/getDate", produces = "application/json;charset=UTF-8")
@ResponseBody
public JSONObject getDate(){
JSONObject result = new JSONObject();
try{
JSONArray jsonArr = new JSONArray();
JSONObject allJson = new JSONObject();
allJson.put("id", 0);
allJson.put("open", true);
allJson.put("pId", -1);
allJson.put("name","全部分类");
jsonArr.add(allJson);
//查询所有菜单
Map<String, Object> map = new HashMap<String, Object>();
map.put("parent_id", -1);
map.put("sys_type", 1);//系统类型 0:管理平台 1:场馆后台 2:商城后台
List<Power> powerList = powerService.getPowerByGroupLevel(map);
for (Power power : powerList) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("id", power.getPower_id());
jsonObject.put("pId", 0);
jsonObject.put("open", false);
jsonObject.put("name", power.getPower_name());
jsonArr.add(jsonObject);
if (power.getChildcnt() > 0) {
map.put("parent_id", power.getPower_id());
List<Power> powerChildList = powerService.getPowerByGroupLevel(map);
for (Power powerCh : powerChildList) {
JSONObject jsonObjectCh = new JSONObject();
jsonObjectCh.put("id", powerCh.getPower_id());
jsonObjectCh.put("pId", powerCh.getParent_id());
jsonObjectCh.put("open", false);
jsonObjectCh.put("name", powerCh.getPower_name());
jsonArr.add(jsonObjectCh);
}
}
}
result.put("flag", true);
result.put("jsonArr", jsonArr.toString());
}catch(Exception ex){
logger.error("获取日志树形菜单数据出错!",ex);
ex.printStackTrace();
}
return result;
}
result的数据:
{"jsonArr":"[{\"id\":0,\"pId\":-1,\"open\":true,\"name\":\"全部分类\"},
{\"id\":1115000001,\"open\":false,\"pId\":1115000000,\"name\":\"商品分类\"},{\"id\":1115000002,\"open\":false,\"pId\":1115000000,\"name\":\"商品信息\"},
{\"id\":1116000000,\"open\":false,\"pId\":0,\"name\":\"会员管理\"},{\"id\":1116000001,\"open\":false,\"pId\":1116000000,\"name\":\"会员信息管理\"},
{\"id\":1113300000,\"open\":false,\"pId\":1113000000,\"name\":\"营业点管理\"},{\"id\":1113400000,\"open\":false,\"pId\":1113000000,\"name\":\"用户管理\"},
{\"id\":1113500001,\"open\":false,\"pId\":1113000000,\"name\":\"部门管理\"}]","flag":true}
这里,只是用代码得到了两层菜单,如果是3层4层,代码就会显得很臃肿,觉得应该写成一个递归调用的方法比较好点
zTree的简单使用的更多相关文章
- Ztree的简单使用和后台交互的写法(二)
针对Ztree的简单使用和后台交互的写法(一)中的树进行改进 1.增加节点的权限 由页面的当前用户,决定树的根节点 然后动态获取树的详细节点: 初始化函数为: function init(){ //初 ...
- 项目中简单使用ztree,简单数据。
由于公司架构较旧,使用的jdk版本为1.4,页面上也没有el表达式. 加入 js 文件 <% String context = request.getContextPath(); %> & ...
- AdminLTE介绍和zTree的简单使用
一.AdminLTE介绍 1.介绍 AdminLTE是一个开源的后台控制面板和仪表盘 WebApp 模板,是建立在Bootstrap3框架和JQuery之上的开源模板主题工具,它提供了一系列响应的 ...
- Ztree学习(-)简单例子
https://www.cnblogs.com/shinhwazt/p/5828031.html ztree包:https://pan.baidu.com/s/1vOgGm_elF-lF0VowoHw ...
- EasyUI+zTree实现简单的树形菜单切换
使用easyui_ztree实现简单的树形菜单切换效果 <!DOCTYPE html> <html> <head> <meta charset="U ...
- Ztree的简单使用和后台交互的写法(一)
一.引入ztree的头文件 <!-- 引入ztree/--> <script type="text/javascript" src="${pageCon ...
- zTree的简单例子
<%@ page language="java" pageEncoding="UTF-8" %> <%@ include file=" ...
- zTree入门-最简单的树
最近发现项目中很多地方都是树形菜单,而这些树形菜单都是使用树形插件zTree来制作的,所以就想自学一下zTree,参照官方文档写了一个简单的案例,使用zTree做了 一个最简单的树形结构. 案例:zT ...
- 树结构数据的展示和编辑-zTree树插件的简单使用
最近在项目当中遇到一个需求,需要以树结构的方式展示一些数据,并可对每一个树节点做内容的编辑以及树节点的添加和删除,刚好听说有zTree这个插件可以实现这样的需求,所以在项目的这个需求完成之后,在博客里 ...
随机推荐
- OPENQUERY用法以及使用需要注意的地方
对给定的链接服务器执行指定的传递查询.该服务器是 OLE DB 数据源.OPENQUERY 可以在查询的 FROM 子句中引用,就好象它是一个表名.OPENQUERY 也可以作为 INSERT.UPD ...
- html css 怎么使img和a标签在一个行内元素中间对齐
答案是:#box ul.games li img{vertical-align: middle;} 这行很重要哦. <div id="box"> <div cla ...
- BUG的定位与分析思路
一般来说bug大多数存在于3个模块: 1.前台界面,包括界面的显示,兼容性,数据提交的判断,页面的跳转等等,这些bug基本都是一眼可见的,不太需要定位,当然也不排除一些特殊情况,本身数据传过来的时候就 ...
- docker基于commit命令创建支持ssh服务的镜像
以centos为基础,目的使用ssh服务远程连接docker容器. 环境:宿主机centos7(宿主机ip地址为192.168.164.130),直接搜索docker的centos镜像,下载最新版本. ...
- sourcetree 出现忽然分支消失,git文件变乱
通过sourcetree提交后,忽然分支没有了,并且git文件变乱 解决: 1.双击sourcetree时 点击第一个自动修复,开启sourcetree 2.克隆新的仓库到本地,并检出需要的分支 3. ...
- 关于 javascript:void(0) 的问题.
原文地址:楚广明的博客 http://www.cnblogs.com/chu888chu888/archive/2012/01/05/2313045.html 最近看了好几个关于<a>标签 ...
- Java中数组转为List三种情况的优劣对比,常犯的类型转换错误原因解析
一.最常见方式(未必最佳)通过 Arrays.asList(strArray) 方式,将数组转换List后,不能对List增删,只能查改,否则抛异常. 关键代码:List list = Arrays. ...
- Java-Runoob-高级教程-实例-字符串:05. Java 实例 - 字符串反转
ylbtech-Java-Runoob-高级教程-实例-字符串:05. Java 实例 - 字符串反转 1.返回顶部 1. Java 实例 - 字符串反转 Java 实例 以下实例演示了如何使用 J ...
- Linux gdb调试器用法全面解析
GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具,GDB主要可帮助工程师完成下面4个方面的功能: 启动程序,可以按照工程师自定义的要求随心所欲的运行程序. 让被调试的程序在工程师指定的断 ...
- lnmp架构实现动态php
目录 LNMP动态网站php 1.PHP-FastCGI概述 PHP-FPM安装配置 配置PHP与数据库连接 配置PHP新增扩展模块 配置PHP-FPM主要配置 配置PHP-FPM错误日志 1.编译安 ...