这里只给出前台页面上的代码,数据可以从后台获取,注意,在封装数据的时候,注意: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中返回给前台

ztree学习---将默认勾选的展开的更多相关文章

  1. ztree点击文字勾选checkbox,radio实现方法

    ztree的复选框checkbok,单选框radio是用背景图片来模拟的,所以点击文字即使用label括起checkbox,radio文字一起,点击文字也是无法勾选checkbox. 要想点击ztre ...

  2. dedecms添加/编辑文章如何把附加选项去掉默认勾选状态

    1.去掉添加时默认勾选状态. 在 系统->系统基本参数->其它选项 中,如图中的三个选项选择否即可. 设置完后可以看到添加时已经默认不勾选,但是编辑文章时还是默认勾选状态. 2.去掉编辑时 ...

  3. 动态绑定CheckBoxList,并默认勾选多选框

    首先这是界面展示列: 当我点击更新操作后,效果如下: 其中所属区域的复选框为动态绑定,并且已为我们默认勾选了相关选项,具体操作如下: 前台代码: <tr> <td class=&qu ...

  4. zTree默认勾选指定ID并执行事件

    try { var arrs = $('#subjectClassID').val().split(","); var treeObj = $.fn.zTree.getZTreeO ...

  5. 【JSP】layui+jsp,根据后台数据给复选框默认勾选

    1.项目中经常使用复选框,当重复加载,就需要从数据库给复选框一个默认的值了. 2.接下来使用的是JSP中迭代的方法,给复选框绑定值.思路和方法不一定好,仅供参考. <input type=&qu ...

  6. EasyUI datagrid默认勾选checkbox时注意事项

    在使用easyui的datagrid默认选中复选框时遇到的一个问题:就是加载程序默认选中复选框时死活选不中,查了好多资料才知道是easyui的datagrid的singleSelect属性设置为‘tr ...

  7. zTree 点击文字 勾选check

    callback: { onClick:function(event, treeId, treeNode){ console.info("onClick") var treeObj ...

  8. elementUi-复选框,使用v-for循环出来的复选框,默认多个值为勾选状态

    1. 使用 v-model="BottomSelectFor[index].tick" 绑定要默认勾选的状态 2.在数组中定义 tick:true,没有的字段默认为false 3. ...

  9. 解决el-tree lazy懒加载时,连续勾选前两个子节点后第二次进入默认选中时,将父节点也勾选的问题

    在用到el-tree的懒加载和默认勾选功能时,若第一次勾选前几个连续节点,第二次进入默认勾选时,由于el-tree子节点尚未完全加载(只加载出来前几个),默认勾选已经开始(已加载出来的子节点被默认勾选 ...

随机推荐

  1. MYSQL列中的数据以逗号隔开,如何查询

    FROM `task_detatils` WHERE FIND_IN_SET( '1', responsible_user) 将含有1的responsible_user列数据全部搜索出来

  2. [Arch] 03. Practice UML in project

    参考列表: 搜索:跟我学UML建模工具StarUML 系列文章 第一部分,下载和安装及破解StarUML工具软件 第二部分,StarUML工具软件的主要功能界面和UML图的创建示例 [Design P ...

  3. 使用d3.v3插件绘制出svg图

    众所周知,这个插件使用的svg技术,而IE8(包括IE8)之前的浏览器是不支持svg的 接下来看代码吧 从后台获取到带id和父id的目录数据[json格式] var module = requestU ...

  4. 解决 iOS7 通过tag 找不到 UITableViewCell 的子控件(转)

    转自:http://www.cnblogs.com/waiwaibuzhidao/p/3340400.html 当iOS7问世,程序的世界就混乱了,以前良好的程序,现在是一塌糊涂,于是只能把问题一个一 ...

  5. Tomcat------启动时报错:Failed to start component [StandardEngine[Catalina].StandardHost[localhost].

    启动报错信息: Failed to start component [StandardEngine[Catalina].StandardHost[localhost] 因此出现这种错误的原因可能有: ...

  6. Java查找替换文本文件内容

    文本替换几乎是所有文本编辑器都支持的功能,但是要限制在编辑其中才可以执行该功能.本实例实现了制定文本文件的内容替换,并且不需要再编辑其中打开文本文件. 思路: 先看视图层,要有一个JButton控件用 ...

  7. RF中采用python方法获取当月1号、上月1号、下月1号、当前日期N天后日期、当前日期N天前日期、指定月份总天数、上个月份、下个月份、当月最后1天日期、上个月最后1天日期、下个月最后1天日期

    ${TodayDate} evaluate datetime.date.today().strftime('%Y%m%d') datetime ${CurrentMonthFirstDay} eval ...

  8. Perl操作Oracle

    一. perl连接Oracle数据库 [oracle@oracle11gR2 perl_script]$ more connect.pl #!/usr/bin/perl #perl script us ...

  9. Hadoop计算平均值【转】

    file1.txt a 1b 2a 3b 3a 5b 7c 3c 5 file2.txt a 1b 7c 5a 1c 3 结果: a 2.2b 4.75c 4.0 代码: package org.ap ...

  10. Visual C++中去除警告

    在编程中,编译器警告的意思是提问程序员:如果这样做将会出现意外的错误,你确定要这样做吗? 在很多情况下,我们写程序的时候会出现一些警告,而这些警告我们都知道这样做的确是需要的并且程序中多处出现这种做法 ...