当一棵树的部分节点根据登入用户角色不同而决定是否启用节点前的checkbox选择框的时候,我们应该如何做呢?也或者如何在页面加载的时候动态根据当前登入用户角色动态切换节点前的checkbox的禁用状态?

针对上列一系列问题,今天这里将做一个统一的讲解:

关于节点前的checkbox选择框是否禁用,是通过属性chkDisabled来决定的,值为true则表示禁用;反之表示启用;

一、初始化设置节点禁用

示例代码如下所示:

var zNodes =[
{ id:, pId:, name:"随意勾选 1", open:true},
{ id:, pId:, name:"随意勾选 1-1", open:true},
{ id:, pId:, name:"disabled 1-1-1", chkDisabled:true},
{ id:, pId:, name:"随意勾选 1-1-2"},
{ id:, pId:, name:"disabled 1-2", chkDisabled:true, checked:true, open:true},
{ id:, pId:, name:"disabled 1-2-1", checked:true},
{ id:, pId:, name:"disabled 1-2-2"},
{ id:, pId:, name:"随意勾选 2", checked:true, open:true},
{ id:, pId:, name:"随意勾选 2-1"},
{ id:, pId:, name:"随意勾选 2-2", open:true},
{ id:, pId:, name:"随意勾选 2-2-1", checked:true},
{ id:, pId:, name:"随意勾选 2-2-2"},
{ id:, pId:, name:"随意勾选 2-3"}
];

初始化的时候设置需要禁用前checkbox选择框的节点属性chkDisabled为true即可。

二、动态设置节点前checkbox禁用

动态设置某个节点前checkbox禁用我们是通过方法updateNode(nodeObj)来实现的,将nodeObj的chkDisabled属性值设置为true即可,示例代码如下所示:

var zTree = $.fn.zTree.getZTreeObj("treeDemo");
treeNode.chkDisabled = true;
zTree.updateNode(treeNode);

另外也可以直接使用setChkDisabled(node,disabled,inheritParent, inheritChildren);

示例代码如下所示:

function disabledNode(e) {
var zTree = $.fn.zTree.getZTreeObj("treeDemo"),
disabled = e.data.disabled,
nodes = zTree.getSelectedNodes(),
inheritParent = false, inheritChildren = false;
if (nodes.length == ) {
alert("请先选择一个节点");
}
if (disabled) {
inheritParent = $("#py").attr("checked");
inheritChildren = $("#sy").attr("checked");
} else {
inheritParent = $("#pn").attr("checked");
inheritChildren = $("#sn").attr("checked");
} for (var i=, l=nodes.length; i<l; i++) {
zTree.setChkDisabled(nodes[i], disabled, inheritParent, inheritChildren);
}
}

完整实例代码如下所示:

<!DOCTYPE html>
<HTML>
<HEAD>
<TITLE> ZTREE DEMO - Checkbox chkDisabled</TITLE>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="../../../css/demo.css" type="text/css">
<link rel="stylesheet" href="../../../css/zTreeStyle/zTreeStyle.css" type="text/css">
<script type="text/javascript" src="../../../js/jquery-1.4.4.min.js"></script>
<script type="text/javascript" src="../../../js/jquery.ztree.core-3.5.js"></script>
<script type="text/javascript" src="../../../js/jquery.ztree.excheck-3.5.js"></script>
<!--
<script type="text/javascript" src="../../../js/jquery.ztree.exedit-3.5.js"></script>
-->
<SCRIPT type="text/javascript">
<!--
var setting = {
check: {
enable: true,
chkDisabledInherit: true
},
data: {
simpleData: {
enable: true
}
}
}; var zNodes =[
{ id:, pId:, name:"随意勾选 1", open:true},
{ id:, pId:, name:"随意勾选 1-1", open:true},
{ id:, pId:, name:"disabled 1-1-1", chkDisabled:true},
{ id:, pId:, name:"随意勾选 1-1-2"},
{ id:, pId:, name:"disabled 1-2", chkDisabled:true, checked:true, open:true},
{ id:, pId:, name:"disabled 1-2-1", checked:true},
{ id:, pId:, name:"disabled 1-2-2"},
{ id:, pId:, name:"随意勾选 2", checked:true, open:true},
{ id:, pId:, name:"随意勾选 2-1"},
{ id:, pId:, name:"随意勾选 2-2", open:true},
{ id:, pId:, name:"随意勾选 2-2-1", checked:true},
{ id:, pId:, name:"随意勾选 2-2-2"},
{ id:, pId:, name:"随意勾选 2-3"}
]; function disabledNode(e) {
var zTree = $.fn.zTree.getZTreeObj("treeDemo"),
disabled = e.data.disabled,
nodes = zTree.getSelectedNodes(),
inheritParent = false, inheritChildren = false;
if (nodes.length == ) {
alert("请先选择一个节点");
}
if (disabled) {
inheritParent = $("#py").attr("checked");
inheritChildren = $("#sy").attr("checked");
} else {
inheritParent = $("#pn").attr("checked");
inheritChildren = $("#sn").attr("checked");
} for (var i=, l=nodes.length; i<l; i++) {
zTree.setChkDisabled(nodes[i], disabled, inheritParent, inheritChildren);
}
} $(document).ready(function(){
$.fn.zTree.init($("#treeDemo"), setting, zNodes);
$("#disabledTrue").bind("click", {disabled: true}, disabledNode);
$("#disabledFalse").bind("click", {disabled: false}, disabledNode); });
//-->
</SCRIPT>
</HEAD> <BODY>
<h1>Checkbox chkDisabled 演示</h1>
<h6>[ 文件路径: excheck/checkbox_chkDisabled.html ]</h6>
<div class="content_wrap">
<div class="zTreeDemoBackground left">
<ul id="treeDemo" class="ztree"></ul>
</div>
<div class="right">
<ul class="info">
<li class="title"><h2>、setChkDisabled 方法操作说明</h2>
<ul class="list">
<li>setChkDisabled 方法可以设置节点 checkbox / radio 禁用 或 取消禁用,详细请参见 API 文档中的相关内容</li>
<li><p>试试看:<br/>
禁用时:<input type="checkbox" id="py" class="checkbox first"/><span>关联父</span>
<input type="checkbox" id="sy" class="checkbox first" checked /><span>关联子</span><br/>
取消禁用时:<input type="checkbox" id="pn" class="checkbox first" checked /><span>关联父</span>
<input type="checkbox" id="sn" class="checkbox first" checked /><span>关联子</span><br/>
&nbsp;&nbsp;&nbsp;&nbsp;[ <a id="disabledTrue" href="#" title="set checkbox to be disabled." onclick="return false;">禁用</a> ]
&nbsp;&nbsp;&nbsp;&nbsp;[ <a id="disabledFalse" href="#" title="set checkbox to be abled." onclick="return false;">取消禁用</a> ]
</li>
</ul>
</li>
<li class="title"><h2>、setting 配置信息说明</h2>
<ul class="list">
<li>这个 Demo 只简单演示 chkDisabled 的使用方法,详细配置信息请参考 ‘Checkbox 勾选操作’</li>
</ul>
</li>
<li class="title"><h2>、treeNode 节点数据说明</h2>
<ul class="list">
<li class="highlight_red">)、如果某节点禁用 checkbox,请设置 treeNode.chkDisabled 属性,详细请参见 API 文档中的相关内容</li>
<li>)、其他请参考 ‘Checkbox 勾选操作’</li>
</ul>
</li>
</ul>
</div>
</div>
</BODY>
</HTML>

转:zTree树控件入门之checkbox:如何动态设置节点的checkbox选择框启用与禁用状态(chkDisabled)的更多相关文章

  1. 转:zTree树控件实战篇:针对多个下拉加载zTree树应该如何做出合理的配置

    今天有一个zTree的朋友遇到一个非常棘手的问题,才研究zTree树控件两天就被上头催着看成果,很是苦恼.他面对的问题就是页面内多个地方需要下拉在其文本框下方加载zTree树,由于对zTree下拉加载 ...

  2. 转:zTree树控件扩展篇:巧用zTree控件实现文本框输入关键词自动模糊查找zTree树节点实现模糊匹配下拉选择效果

    是否可以借助于zTree实现文本框输入关键词自动模糊匹配zTree下拉树,然后选择下拉树内节点显示在文本框内且隐藏下拉树. 看到这个需求脑子里头大致已经想到了要如何实现这样一个需求,当时是限于时间问题 ...

  3. 在TreeView 控件上,如果双击任何一个节点的checkbox 只会收到一次After_Check事件 但是check属性变化两次(从false到true 再从true到false),请问该如何解决,谢谢!

    在TreeView 控件上,如果双击任何一个节点的checkbox 只会收到一次After_Check事件 但是check属性变化两次(从false到true 再从true到false),请问该如何解 ...

  4. 转:zTree树控件key配置之title:zTree树节点名称过长如何省略显示且鼠标移入节点上能够显示全称

    当树节点的名称有些很长时,全部显示出来显得很拥挤的情况下,我们会想到用省略节点名称来代替,当鼠标移入节点时能够显示该节点的全称.这样我们应该如何做呢? 首先,我们要在树的节点内多增加一个属性用于设置该 ...

  5. Ext树控件第一次勾选父节点子节点没选中

    项目中同事提出了这样一个bug 问题: 第一次勾选父节点子节点竟然没选中,逆天了啊 初步分析: 可能是之前代码的逻辑错误造成的,随进入调试阶段... 调试中发现该参数为空(原来写代码的也太没素质了), ...

  6. ztree中如何通过点击节点文字就可以选中节点前的选择框,并且父级和子级之间进行选择联动?

    配置信息如下: var UsersTreeSetting = { check : { enable : true, chkboxType : { "Y" : "ps&qu ...

  7. 基于MVC4+EasyUI的Web开发框架经验总结(2)- 使用EasyUI的树控件构建Web界面

    最近花了不少时间在重构和进一步提炼我的Web开发框架上,力求在用户体验和界面设计方面,和Winform开发框架保持一致,而在Web上,我主要采用EasyUI的前端界面处理技术,走MVC的技术路线,在重 ...

  8. 使用EasyUI的树控件构建Web界面

    最近花了不少时间在重构和进一步提炼我的Web开发框架上,力求在用户体验和界面设计方面,和Winform开发框架保持一致,而在Web上,我主要采用EasyUI的前端界面处理技术,走MVC的技术路线,在重 ...

  9. (转)基于MVC4+EasyUI的Web开发框架经验总结(2)- 使用EasyUI的树控件构建Web界面

    http://www.cnblogs.com/wuhuacong/p/3669575.html 最近花了不少时间在重构和进一步提炼我的Web开发框架上,力求在用户体验和界面设计方面,和Winform开 ...

随机推荐

  1. 开启mysql远程登录

    开发过程中经常遇到远程访问mysql的问题,每次都需要搜索,感觉太麻烦,这里记录下,也方便我以后查阅. 首先访问本机的mysql(用ssh登录终端,输入如下命令): mysql -uroot -p 输 ...

  2. RN API备忘

    1:Alert:启动一个提示对话框,包含对应的标题和信息. 2:Animated:动画效果. 3:AppRegistry:React Native应用的入口.应用的根组件应当通过AppRegistry ...

  3. 如何删除Android studio中的注解代码

    http://blog.csdn.net/maimiho/article/details/52195081 先看下上面的文章.只是换下正则表达式即可 正则表达式:/\*[\s\S ]*

  4. edit-distance-动态规划,计算两词之间变换的最小步数

    Given two words word1 and word2, find the minimum number of steps required to convert word1 to word2 ...

  5. 【DB2】索引

    1. 索引的概念 1.1 索引的优点 索引是表的一个或多个列的键值的有序列表,创建索引的原因有2个: 确保一个或多个列中值的唯一性 提高对表进行的查询的性能.当查询时想要以更快的速度找到所需要的列,或 ...

  6. 关于RSA加密算法的工具类

    关于RSA加密算法的工具类 最近在捣鼓SSO(单点登录),就是一个在应用(系统)登录之后,当切换其他应用(系统)的时候,可以省去登录,提高用户的使用的便捷.(具体有时间在写) 期间涉及的安全问题,发送 ...

  7. excel文件批量重命名

    1.创建bat文件 2.在文件内输入以下格式的内容并保存,注意期间有空格 ren 1.txt 0011.txt     ren 2.txt 0021.txt     ren 3.txt 0031.tx ...

  8. Eureka客户端网卡和网段选择

    当机器上有多个网卡或者机器上配置了回环地址的时候,Eureka客户端呈报给服务端的IP将不可预见,为了指定IP我们需要增加以下配置: 在bootstrap.yml中增加配置内容: spring: cl ...

  9. 播布客视频PIT专用播放器MBOO2015

    播布客视频,还是挺不错... 很多视频都是pit后缀的,需要用MBOO2015才可以打开... 00.MB2015软件 01.视频样例 02.download 链接: https://pan.baid ...

  10. 【TP3.2+onethink】radio+checkbox+select 空间 编辑页面选中,附录 js 返回上一页

    1.TP3.2框架 如何实现 [radio+checkbox+select 空间 编辑页面选中],说实话,比较繁琐,不咋地!! 不废话,上代码:(其中 XX_arr  变量一维数组) <div ...