开发者社区> 问答> 正文

如何添加一个唯一的静态根节点?:报错

@zTree 你好,想跟你请教个问题:

我想添加一个唯一的静态根节点,根节点下面的数据再从数据库读取,应该怎么设置呢?


	    <SCRIPT type="text/javascript">
	        <!--
	        var setting = {
	            view: {
	                addHoverDom: addHoverDom,
	                removeHoverDom: removeHoverDom,
	                selectedMulti: false
	            },
	            check: {
	                enable: false
	            },
	            data: {
	                simpleData: {
	                    enable: true
	                }
	            },
	            edit: {
	                enable: true
	            },
	            async: {    
	                enable: true,
	                url:"/res/fetchData?pid=0",
	                autoParam:["id", "name"],
	                otherParam:{"otherParam":"zTreeAsyncTest"},
	//              dataType: "text",//默认text
	//              type:"get",//默认post
	                dataFilter: filter  //异步返回后经过Filter
				},
				callback:{  
	//              beforeAsync: zTreeBeforeAsync,      // 异步加载事件之前得到相应信息    
	                asyncSuccess: zTreeOnAsyncSuccess,//异步加载成功的fun    
	                asyncError: zTreeOnAsyncError,   //加载错误的fun    
	                beforeClick:beforeClick //捕获单击节点之前的事件回调函数  
	            }
	        };

			//treeId是treeDemo  
	        function filter(treeId, parentNode, childNodes) {    
	            if (!childNodes) return null;    
	            for (var i=0, l=childNodes.length; i<l; i++) {    
	                childNodes[i].name = childNodes[i].name.replace('','');    
	            }    
	            return childNodes;    
	        }    
	          
	        function beforeClick(treeId,treeNode){  
	            if(!treeNode.isParent){  
	                alert("请选择父节点");
	                return false;  
	            }else{  
	                return true;  
	            }  
	        }  
	          
	        function zTreeOnAsyncError(event, treeId, treeNode){    
	            alert("异步加载失败!");    
	        }    
	          
	        function zTreeOnAsyncSuccess(event, treeId, treeNode, msg){    
	              
	        }  
	          
	        /***********************当你点击父节点是,会异步访问servlet,把id传过去*****************************/  
	        var zNodes=[];
	
	        $(document).ready(function(){
	            $.fn.zTree.init($("#treeDemo"), setting, zNodes);
	        });
	
	        var newCount = 1;
	        function addHoverDom(treeId, treeNode) {
	            var sObj = $("#" + treeNode.tId + "_span");
	            if (treeNode.editNameFlag || $("#addBtn_"+treeNode.tId).length>0) return;
	            var addStr = "<span class='button add' id='addBtn_" + treeNode.tId
	                + "' title='add node' onfocus='this.blur();'></span>";
	            sObj.after(addStr);
	            var btn = $("#addBtn_"+treeNode.tId);
	            if (btn) btn.bind("click", function(){
	                var zTree = $.fn.zTree.getZTreeObj("treeDemo");
	                zTree.addNodes(treeNode, {id:(100 + newCount), pId:treeNode.id, name:"new node" + (newCount++)});
	                return false;
	            });
	        };
	        function removeHoverDom(treeId, treeNode) {
	            $("#addBtn_"+treeNode.tId).unbind().remove();
	        };
	        //-->
	    </SCRIPT>



展开
收起
kun坤 2020-06-06 17:11:51 474 0
1 条回答
写回答
取消 提交回答
  • 初始化的时候传入你需要的根节点就是了, 设置 isParent:true 就可以了, 同时开启你的异步加载模式, 展开这个根节点时,就会自动进行异步加载, 当然你也可以在init 后,强行使用 expandNode 方法让 根节点展开, 自动加载子节点######数据库里现在有多个同级的根节点,想在它们的上面再加一层唯一的根节点,你说的是不是在数据层面做到只有一个根节点呢?######其实看你后台要怎么做,你可以用sql初始化一个根节点到后台;或者你拉取数据的时候发现没有根节点,用代码插入一个根节点。数据到前台后,ztree文档很详细了,简单设置下节点就好。

    2020-06-06 17:11:56
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载