ztree异步加载时勾选父节点自动勾选全部子节点

关键代码:

//选择样本模板树
    var model_sample_ztree, model_sample_zNode;
    var modelsample_setting = {
            async: {
                enable: true,
                url:"admin/sample/modelSampleList",
                autoParam:["id","level=lv"]
            },
            check:{
                enable:true,
                chkboxType: {"Y":"ps", "N":"ps"}
            },
            data:{
                 simpleData : {
                        enable : true,
                        idKey : "id", //id编号命名 默认
                        pIdKey : "pid",//父id编号命名默认
                        rootPId : 0 //用于修正根节点父节点数据,即 pIdKey 指定的属性值  
                    }  
            },
            callback:{    
                onAsyncSuccess:zTreeOnAsyncSuccess,//树加载成功时的回调函数
            }
    };

加载成功的回调函数

/**
	* 加载成功的回调函数 
	* 树第一次加载成功则强制异步加载子节点
	* 展开其下面的子节点
	*/
	function zTreeOnAsyncSuccess(){
		//防止数据量过大,延迟加载
		 setTimeout(function(){		
		    var treeObj =  $.fn.zTree.getZTreeObj("ztree_modelsample");
		    var rootNodes = treeObj.transformToArray(treeObj.getNodes());
		    //循环判断该节点是否已加载子节点,是则进入下一次循环,否则加载子节点,确保加载子节点只加载一次,若加载多次会影响效率
		    for(var i=0; i<rootNodes.length; i++){
		        if(rootNodes[i].zAsync == false)
		            treeObj.reAsyncChildNodes(rootNodes[i], "refresh",true);    
		        else continue;
		    }
		  },1000);
	}

猜你喜欢

转载自blog.csdn.net/weixin_42656571/article/details/90770497