ztree控制checkbox可选或者不可选例子

1、引入ztree树相关的js文件

<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>
注意excheck.js文件是一定要引入的,要不然会导致节点前的checkbox无法显示和操作。

2、默认设置每一个节点的nocheck属性值为true

nocheck表示无checkbox选择框,属性值设置为true,表示不会显示节点前面的checkbox选择框。所以需要我们在提供节点数据给zTree树控件之前设置好每一个节点的nocheck值为true,示例数据形如:

//ztree用于初始化的静态数据      
 
var zNodes = [
 
{ id: 1, pId: 0, name: "随意勾选 1", nocheck: true },
 
{ id: 11, pId: 1, name: "随意勾选 1-1", nocheck: true },
 
{ id: 111, pId: 11, name: "无 checkbox 1-1-1", nocheck: true },
 
{ id: 112, pId: 11, name: "随意勾选 1-1-2", nocheck: true },
 
{ id: 12, pId: 1, name: "无 checkbox 1-2", nocheck: true },
 
{ id: 2, pId: 0, name: "随意勾选 2", nocheck: true },
 
];

3、动态设置节点前显示checkbox

想要让某个节点显示checkbox选择框,就必须要更新其nocheck属性值为false即可。核心方法如下所示:

function filter(node) {
 
return node;
 
}
///动态设置zTree的所有节点有checkbox
 
function DynamicUpdateNodeCheck() {
 
var zTree = $.fn.zTree.getZTreeObj("treeDemo");
 
//根据过滤机制获得zTree的所有节点          
 
var nodes = zTree.getNodesByFilter(filter);
 
//遍历每一个节点然后动态更新nocheck属性值
 
for (var i = 0; i < nodes.length; i++) {
 
var node = nodes[i];
 
node.nocheck = false; //表示显示checkbox
 
zTree.updateNode(node);
 
}
 
}

4、ztree显示选中节点

//初使化所有被选中的节点
        function initChecked(){
                var zTree = $.fn.zTree.getZTreeObj("resTree");
                var orgId = $("#orgId").val();
                if(orgId!=null && orgId !=''){
                    var node = zTree.getNodeByParam("orgId", orgId, null);   //得到选中节点
                    zTree.checkNode(node, true, true);     <span style="white-space:pre">         </span> //显示选中节点
                    zTree.selectNode(node);<span style="white-space:pre">                    </span> //打开选中节点的父节点
                }
        }

完整代码:

<!DOCTYPE html>
<html>
<head>
    <title>ZTREE DEMO - 默认zTree几点无checkbox动态设置节点checkbox出现</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">
        <!--
        var setting = {
            check: {
                enable: true,
                nocheckInherit: false
            },
            data: {
                simpleData: {
                    enable: true
                }
            }
        };
        //ztree用于初始化的静态数据       
        var zNodes = [
            { id: 1, pId: 0, name: "随意勾选 1", nocheck: true },
            { id: 11, pId: 1, name: "随意勾选 1-1", nocheck: true },
            { id: 111, pId: 11, name: "无 checkbox 1-1-1", nocheck: true },
            { id: 112, pId: 11, name: "随意勾选 1-1-2", nocheck: true },
            { id: 12, pId: 1, name: "无 checkbox 1-2", nocheck: true },
            { id: 2, pId: 0, name: "随意勾选 2", nocheck: true },
        ];
        //过滤节点的机制 直接return node表示不做任何过滤
        function filter(node) {
            return node;
        }
        ///动态设置zTree的所有节点有checkbox
        function DynamicUpdateNodeCheck() {
            var zTree = $.fn.zTree.getZTreeObj("treeDemo");
            //根据过滤机制获得zTree的所有节点           
            var nodes = zTree.getNodesByFilter(filter);
            //遍历每一个节点然后动态更新nocheck属性值
            for (var i = 0; i < nodes.length; i++) {
                var node = nodes[i];
                node.nocheck = false; //表示显示checkbox
                zTree.updateNode(node);
            }
        }
        ///页面加载后<a href="http://www.suchso.com/UIweb/jquery-ztree-user-config.html" class="keylink" title=" " target="_blank">初始化ztree</a>数据且默认展开所有节点
        $(document).ready(function () {
            $.fn.zTree.init($("#treeDemo"), setting, zNodes).expandAll(true);
        });
        //-->
    </script>
</head>
<body>
    <h1>
        Checkbox nocheck 演示</h1>
    <div class="content_wrap">
        <div class="zTreeDemoBackground left">
            <ul id="treeDemo" class="ztree">
            </ul>
        </div>
        <div class="right">
            <p>
                默认情况下设置任何节点无checkbox选择框,需要配置每一个节点的nocheck属性为true即可。</p>
            <p>
                zTree加载完成后通过updateNode(node)方法动态更新节点的nocheck属性为false,则节点将会显示checkbox。</p>
            <h3>
                STEP DAY</h3>
            <div>
                <input type="button" value="动态设置节点有checkbox" onclick="DynamicUpdateNodeCheck()" />
            </div>
        </div>
    </div>
</body>
</html>

时间: 2024-09-25 05:32:07

ztree控制checkbox可选或者不可选例子的相关文章

控制全选-jquery控制checkbox是否选中,第二次全选时没有作用。

问题描述 jquery控制checkbox是否选中,第二次全选时没有作用. $(function(){ var powerList = ${jsonStr}; var actions = '${actions}'; for(i=0;i<powerList.length;i++){ $("#"+powerList[i].pId).append("<input name='checkbox' type='checkbox' value='"+powerLis

jquery.ztree增加checkbox选项(可选以及不可选)

有一棵树,我们只需要其中几个节点可以通过勾选前面checkbox来对其进行操作,且这个操作需要动态执行.应该如何实现呢? ==========> 面对这样一个需求,如果我们使用的是zTree树控件,那么将会变得非常地简单. 面对这样一个需求,如果我们使用的是zTree树控件,那么将会变得非常地简单. 1.引入ztree树相关的js文件 view sourceprint? 1.<link rel="stylesheet" href="../../../css/dem

DataGrid 的 全选/取消全选 控制(CheckBox)

datagrid|控制 DataGrid控件: <Columns>        <asp:TemplateColumn>         <HeaderStyle Width="10px"></HeaderStyle>         <HeaderTemplate>          <INPUT id="CheckAll" name="CheckAll" type="

ASP控制图片显示的大小的例子

控制|显示 <HTML> <HEAD> <TITLE> New Document </TITLE> <script language="JavaScript"> <!-- var flag=false; function DrawImage(ImgD){ var image=new Image(); image.src=ImgD.src; if(image.width>0 && image.heig

JQuery简单的checkbox全选、反选例子

HTML 我们的页面上有一个歌曲列表,列出多行歌曲名称,并匹配复选框供用户选择,并且在列表下方有一排操作按钮.  代码如下 复制代码 <ul id="list">      <li><label><input type="checkbox" value="1"> 1.时间都去哪儿了</label></li>    <li><label><inpu

Golang并发编程中控制主goroutine退出实现的例子

在使用golang进行并发编程的时候,当你新起goroutine异步执行时,主goroutine并不知道其它goroutine是否运行完毕,一旦主goroutine退出后,所有的goroutine都会退出,因此需要控制主goroutine退出时间,可有如下方法: (1)time.Sleep() 比较粗暴,不靠谱,就是让主goroutine多跑一会儿,实际并不确定其它goroutine是否运行结束. (2)利用channel通信 在主goroutine一直阻塞等待一个退出信号,在其他gorouti

ztree+java异步加载树形菜单例子

本篇给大家分享一下 ztree+java异步加载demo.ztree支持加载数据量可以做大,预计一个页面5000+都是可以的. Ztree异步加载的意思就是: 当点击展开树节点时,才去请求后台action返回点击节点的子节点数据并加载. 本demo采用SpringMvc+Mybatis.参见代码结构图: 前台代码jsp:  代码如下 复制代码 <%@ page language="java" import="java.util.*" pageEncoding=

jQuery使用prop设置checkbox全选、反选例子

大家都知道 jQuery 可通过 attr 方法来设置 dom 属性,自然的也就想到用 $(dom).attr('checked', 'checked'); 这种方法来选择 checkbox 了,但是最近在项目中使用 checkbox 全选.反选的时候,却出现了问题: 在使用 attr 方法设置选择后,点击第一次可以设置反选,第二次却不行了. $(function(){     var checkbox = $("input[type='checkbox']");     //全选  

c#中子线程控制进度条的一个简单例子

这个问题来自社区提问,代码保留一份用来以后回答 using System; using System.ComponentModel; using System.Windows.Forms; namespace WindowsApplication4 ...{ /**//// <summary> /// gui 类 /// </summary> public partial class Form1 : Form ...{ public Form1() ...{ InitializeC