这里只给出前台页面上的代码,数据可以从后台获取,注意,在封装数据的时候,注意:Id(节点的id,可以是数字也可以是字符串) , pid(父亲节点的id) , name(节点名称)不能少 。

html页面插入的代码:

    <div id="dialog-confirm" class="hide">
<input type="hidden" id="uid" value=""/>
<div class="zTreeDemoBackground left">
<ul id="roleTree" class="ztree" ></ul>
</div>
</div>

将后台获取的数据展示成树状,默认勾选的将展开:

从后台获取数据,并展示成树状

 //弹出框分配角色
function GetJqGridRowValue(id) {
//window.open("[(${#request.getContextPath()})]/api/v1/registerService/manage");
$( "#dialog-confirm" ).removeClass('hide').dialog({
resizable: true,
width: '500',
height:'400',//设置弹框的长度和高度,如果内容超过限制,则会出现滚动条
modal: true,
title: "<div class='widget-header'><h4 class='smaller'>分配角色</h4></div>",
title_html: true,
buttons: [
{
html: "<i class='ace-icon fa fa-check'></i>&nbsp; 保存",
"class" : "btn btn-primary btn-minier",
click: function() {
//点击保存事件触发的事件 $( this ).dialog( "close" );
}
}
,
{
html: "<i class='ace-icon fa fa-times bigger-110'></i>&nbsp; 取消",
"class" : "btn btn-minier",
click: function() {
$( this ).dialog( "close" );
}
}
]
}); var setting = {
check: {
enable: true,
nocheckInherit: true
},
data: {
simpleData: {
enable: true //这里启用简单数据格式,请务必设置id, pId,并且让数据满足父子关系,即对后台数据的要求,并且根节点pid为0
}
}
};
$.ajax({
type: "get",
url: "[(${#request.getContextPath()})]/api/v1/***,//从后台获取数据的url
data: {},
dataType: "json",
success: function(data){
$.fn.zTree.init($("#roleTree"), setting, data); //根据后台传过来的List<Map(String,String>>数据组装成树结构,map中包含id,pid,name,checked等key。
//树状结构,默认展开被勾选的 start
var tree = $.fn.zTree.getZTreeObj("roleTree");
var nodes=tree.getCheckedNodes(true);
for(var j=0;j<nodes.length;j++){
var node = tree.getNodeByParam("id",nodes[j].id);
var parent = node.getParentNode();
if(!parent.open){
tree.expandNode(parent,true,true);
}
tree.checkNode(node , true,true);
}
//end
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert(XMLHttpRequest.status);
alert(XMLHttpRequest.readyState);
alert(textStatus);
},
});
}

设置默认展开勾选核心代码:

 //树状结构,默认展开被勾选的 start
var tree = $.fn.zTree.getZTreeObj("roleTree");
var nodes=tree.getCheckedNodes(true);
for(var j=0;j<nodes.length;j++){
var node = tree.getNodeByParam("id",nodes[j].id);
console.log("strs[j]"+nodes[j]+"node.id="+nodes[j].id)
var parent = node.getParentNode();
if(!parent.open){
tree.expandNode(parent,true,true);
}
tree.checkNode(node , true,true);
}

效果如下图:

List<Map<String,String> >结构如下:

map .put("pid","0"),map.put("id","111"),map.put("name","public")

map .put("pid","111"),map.put("id","admin"),map.put("name","管理员")

..........

最后将map加入到list中返回给前台

最新文章

  1. js中addEventListener中第3个参数
  2. object to 字符串json
  3. Open-falon监控安装过程
  4. MySQL5.6 ALTER TABLE 分析和测试
  5. 解决python3 不能引入setuptools
  6. git对象存储
  7. Webstorm6的汉化以及主题设置
  8. ASCII码表(0 - 255)
  9. -1-3 java集合框架基础 java集合体系结构 Collection 常用java集合框架 如何选择集合 迭代器 泛型 通配符概念 Properties 集合 迭代器
  10. Linux后台执行的方法 - 关闭、退出不影响
  11. webpack(3)-管理资源
  12. c/c++ 类模板初探
  13. 20190402 管道符,分号,单引号,双引号,&amp;&amp;的使用
  14. 《Miracle-House团队》第二次作业:西小餐项目开题报告
  15. winform 操作注册表提示没有权限解决办法
  16. 关于指针*前后const代表的意思——记住一个口诀“左内右本”
  17. R绘图 第八篇:绘制饼图(ggplot2)
  18. 實戰ESXi 5設置MPIO 打造IP-SAN負載平衡容錯
  19. spring boot使用java读取配置文件,DateSource测试,BomCP测试,AnnotationConfigApplicationContext的DataSource注入
  20. JS选中清空

热门文章

  1. Activity 经历如下3个阶段
  2. mysql中查看数据库的版本,什么版本
  3. 使用monkey技术修改python requests模块
  4. python使用pyqt写带界面工具
  5. MTK 隐藏通知栏
  6. AndroidManifest详解
  7. Eclipse Maven 配置setting.xml 的镜像远程仓库
  8. Windows最全快捷键
  9. adc转换原理
  10. sql预计简单分页