zTree的学习
最近要做一个有关权限的东西,原理和数据库都已经知道了,就是树状图困难。
原先是打算用layui的,因为我孤陋寡闻……吃了大亏,弄了3个小时,屁都没有。只能说是……
后来百度找到了zTree,进去学习了段时间,只能说不是一般的友好,非常好用。但还是学习了一早上,勉强有点收获。
为了明显一些,我特地设置了不和官方默认数据一样的结构。
CREATE TABLE uri(
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT COMMENT '编号',
uri_name VARCHAR(10) NOT NULL COMMENT 'uri的概述',
is_have_superiors TINYINT NOT NULL COMMENT '是否有上级',
superiors_id BIGINT UNSIGNED NOT NULL COMMENT '上级uri的id',
uri VARCHAR(100) NOT NULL COMMENT 'uri地址'
) COMMENT 'uri描述表';
实体类:
import lombok.Data; import java.math.BigInteger;
@Data
public class UriEntity { private BigInteger id;
private String uriName;
private Integer haveSuperiors;
private BigInteger superiorsId;
private String uri;
}
controller方法:dao层和service以及mybatis文件我就不上了,看方法名应该就知道是什么了
// 我设置了全局跨域的
@PostMapping("/uris")
public ResponseDTO getUrisByPid(BigInteger superiorsId) {
UriEntity uriById = uriService.getUriById(superiorsId);
return new ResponseDTO("200", "success", uriById);
}
html文件:其中要注意的一点,我看官方api上面写的dataFilter: ajaxDataFilter是在rollback这里面的,但是不知道为什么不行,后来百度看到了async里面
<!DOCTYPE HTML>
<HTML>
<HEAD>
<TITLE> ZTREE DEMO </TITLE>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<link href="css/zTreeStyle/zTreeStyle.css" rel="stylesheet"/>
<!-- 分别导入jquery,zTree的两个js文件,其中excheck是显示复选框一定要有的 -->
<script type="text/javascript" src="js/jquery-3.4.1.js"></script>
<script type="text/javascript" src="js/jquery.ztree.core.js"></script>
<script type="text/javascript" src="js/jquery.ztree.excheck.js"></script>
</head>
<BODY>
<div>
<ul id="treeDemo" class="ztree"></ul>
<input id="btn1" value="获取选中节点id" type="button"/>
</div>
<script>
var zTreeObj;
function ajaxDataFilter(treeId,parentNode,responseData) {
return responseData.data;
}
var setting = {
// 开启复选框,其他不写就都是默认
check: {
enable: true
},
// name:"uriName"和取别名差不多
data: {
key:{
name:"uriName"
},
// 开启简单数据,其他默认
// idKey:"id",pIdKey:"superiorsId"也差不多是取别名
simpleData: {
enable: true,
idKey: "id",
pIdKey: "superiorsId",
rootPId: 0
}
},
// 开启异步加载
async: {
enable: true,
url: "http://127.0.0.1:8081/uris",
type: "post",
// 官方api说的用text可以满足大部分需求,但是json也行
dataType: "text",
// 请求参数,这里是通过superiorsId查询到其下的子uri
autoParam: ["id=superiorsId"],
// 过滤数据,因为返回的是ResponseDTO,其中除了要用到的data还有其他code,msg用不到的东西
// ajaxDataFilter后面不用加()和参数,可能是因为里面的都是默认的东西吧
dataFilter: ajaxDataFilter
}
};
// 初始的节点,必须设置为父节点,因为 异步加载 只对 + 起作用,而要有 + 则必须是父节点
var zNodes=[
{"id":1,"superiorsId":0,"uriName":"删除操作",isParent:true}
];
// 构造出树结构
$(document).ready(function(){
zTreeObj = $.fn.zTree.init($("#treeDemo"),setting,zNodes)
});
// 点击按钮后获取选中的数据
$("#btn1").on("click", function(){
var treeObj=$.fn.zTree.getZTreeObj("treeDemo"),
nodes=treeObj.getCheckedNodes(true),
v="";
for(var i=0;i<nodes.length;i++){
v+=nodes[i].uriName+",";
console.log("节点id:"+nodes[i].id+"节点名称"+v);
}
})
</script>
</BODY>
</HTML>
zTree的学习的更多相关文章
- DHTMLTree、Dtree和Ztree的学习使用
一.DHTMLTree是树菜单,允许我们快速开发界面优美,基于Ajax的javascript库.她允许在线编辑,拖拽,三种状态(全选.不选.半选),复选框等模式.同时在加载大数据量的时候,仍然可以保持 ...
- ztree学习笔记(一)
在项目当中,经常会用到ztree树形插件,之前做的几个项目当中都用到了这个插件,感觉功能还是很强大的,而且在网上还找到了中文的API,因为项目中的树形结构不是自己做的,所以现在从头学习一下,并且记录一 ...
- zTree学习实例
今天做完一个zTree的实例,供有需要的学习! 效果图如下:
- JAVAEE——BOS物流项目02:学习计划、动态添加选项卡、ztree、项目底层代码构建
1 学习计划 1.jQuery easyUI中动态添加选项卡 2.jquery ztree插件使用 n 下载ztree n 基于标准json数据构造ztree n 基于简单json数据构造ztree( ...
- zTree 学习笔记之(一)
zTree 学习笔记之(一) 简介 zTree 是一个依靠 jQuery 实现的多功能 “树插件”.优异的性能.灵活的配置.多种功能的组合是 zTree 最大优点. 到底有哪些具体的优点,可以参见官网 ...
- [译]聊聊C#中的泛型的使用(新手勿入) Seaching TreeVIew WPF 可编辑树Ztree的使用(包括对后台数据库的增删改查) 字段和属性的区别 C# 遍历Dictionary并修改其中的Value 学习笔记——异步 程序员常说的「哈希表」是个什么鬼?
[译]聊聊C#中的泛型的使用(新手勿入) 写在前面 今天忙里偷闲在浏览外文的时候看到一篇讲C#中泛型的使用的文章,因此加上本人的理解以及四级没过的英语水平斗胆给大伙进行了翻译,当然在翻译的过程中发 ...
- zTree学习
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- zTree学习文档和DEOM
http://tool.oschina.net/apidocs/apidoc?api=ztree3.2%2Fapi%2FAPI_cn.html zTree的API http://www.ztree.m ...
- ztree学习之异步加载节点(一)
ztreedemo.jsp: <%@ page language="java" import="java.util.*" pageEncoding=&qu ...
随机推荐
- 白底黑字!Android浅色状态栏黑色字体模式(另)
小彬什么都想做任重致远 关注 2016.06.30 10:16* 字数 489 阅读 3234评论 3喜欢 12 前言 由于该死不死的设计湿,设计了一套白色状态栏的UI.当然在iOS上可以实现自适应, ...
- 解决Eclipse Debug 断点调试的source not found问题
写完代码进行调试的时候,经常会用到断点调试,一步步检测问题,但有时候eclipse有时候无法进入断点,这样就失去了断点的意义,原因是debug无法找到该项目的源代码,解决方法如下 1,打开debug ...
- Mybatis入门(五)属性名和字段名不一致解决
在学Mybatis的时候都需要创建一个实体类,但创建实体类的变量必须和数据库的一样,这章就来解决这个有趣的问题 目录: 问题是这样: 输出的结果是: password为空,这就很难受: 解决方法: 第 ...
- MySQL 通过SQL语句导出表为文件
SELECT * //你要导出的字段 FROM `tabel` //表名 INTO OUTFILE "D:\\file.txt" //导出的文件路径和文件名 LINES TERMI ...
- vscode点击ctrl键报错Request textDocument/definition failed.
现象 用vscode写java代码的时候突然出现,修复问题点击Ctrl时,输出窗口就打日志,报错Request textDocument/definition failed. 我百度唯一的有用线索就是 ...
- 3 JVM配置参数
- php绕过open_basedir设置
原理关于open_basedir open_basedir是php.ini中的一个配置选项 它可将用户访问文件的活动范围限制在指定的区域, 假设open_basedir=/home/ ...
- JuJu团队12月4号工作汇报
JuJu团队12月4号工作汇报 JuJu Scrum 团队成员 今日工作 剩余任务 困难 于达 调试 无 无 婷婷 和陈灿一起提升acc 无 无 恩升 纠正chunk evaluator 无 无 ...
- flask 常用数据模型模板
1.一对多关系模型 示例代码 class Role(db.Model): """角色表""" __tablename__ = 'roles' ...
- 【剑指Offer】面试题26. 树的子结构
题目 输入两棵二叉树A和B,判断B是不是A的子结构.(约定空树不是任意一个树的子结构) B是A的子结构, 即 A中有出现和B相同的结构和节点值. 例如: 给定的树 A: 3 / \ ...