ztree入门讲解以及树形列表的实现

zTree 是一个依靠 jQuery 实现的多功能 “树插件”, 而且拥有较好的浏览器兼容性,有着丰富的功能以及可以自定义样式,足以满足大部分业务的开发。
第一步先导入css及js文件

第二步在html页面创建ztree Div
    第三步初始化ztree

    var setting = {
    view: {
    dblClickExpand: false,//双击节点时,是否自动展开父节点的标识
    showLine: true,//是否显示节点之间的连线
    fontCss:{‘color’:‘black’,‘font-weight’:‘bold’},//字体样式函数
    selectedMulti: true //设置是否允许同时选中多个节点
    },
    check:{
    //chkboxType: { “Y”: “ps”, “N”: “ps” },
    chkboxType: { “Y”: “”, “N”: “” },
    chkStyle: “checkbox”,//复选框类型
    enable: true //每个节点上是否显示 CheckBox
    },
    edit:{
    enable: true,
    editNameSelectAll: true,
    showRemoveBtn : true,
    showRenameBtn : true,
    removeTitle : “remove”,
    renameTitle : “rename”
    },
    data: {
    simpleData: {//简单数据模式
    enable:true,
    idKey: “id”,
    rootPId: null
    }
    },
    callback: {
    beforeExpand:zTreeBeforeExpand, // 用于捕获父节点展开之前的事件回调函数,并且根据返回值确定是否允许展开操作
    }
    };
    zTreeObj = . f n . z T r e e . i n i t ( .fn.zTree.init( .fn.zTree.init(("#regionZTree"), setting, dominZTree);

    dominZTree 数据结构

    深入研究
    https://blog.csdn.net/qq3892997/article/details/80306551

    下面是我写的一个查询树的页面列表,不需要递归,后台直接调用查询方法即可
    <%@ page language=“java” contentType=“text/html; charset=UTF-8”
    pageEncoding=“UTF-8”%>

          <IFRAME ID="testIframe" Name="testIframe" FRAMEBORDER=0 SCROLLING=AUTO width=100% height=100%
                SRC="<%=request.getContextPath()%>/echarts.jsp"></IFRAME>
         
      </div>
      
      	<script type="text/javascript">
      	 demoIframe = $("#testIframe");
       $(function() {
      			var setting3 = {
      				data : {
      					simpleData : {
      						  enable:true,
      			                idKey: "id",
      			                pIdKey: "pid",
      			                rootPId: null
      					}
      				},
      				view: {
      					//支持html标签
      					fontCss: getFont,
      					nameIsHTML: true
      				},
      				callback: {
      					  //点击之前触发   		treeId//树的名字   	treeNode 该节点对象	
      					  //如果返回 false,zTree 将不会选中节点,也无法触发 onClick 事件回调函数
      				        beforeClick: function (treeId, treeNode) {
      				        	//alert(treeId);
      				        	//alert(treeNode.iconSkin);
      				        	
      						//获取到树对象
      				          var zTree = $.fn.zTree.getZTreeObj("tree3");
      							//如果为顶级节点 
      				          if (treeNode.isParent) {
      				        	  //expandNode通过 zTree 对象执行此方法。
      				        	  //展开 / 折叠 指定的节点
      				            zTree.expandNode(treeNode);
      				            return false;
      				          } else {
      						  //否则  打开路径文件
      						  //页面的话  相当于下个节点  css js 路径下一级 否则会找不到
      				            demoIframe.attr("src","<%=request.getContextPath()%>"+treeNode.file);
      				            return true;
      				          }
      				        }
      				},
      			};
      			var url = "<%=request.getContextPath()%>/tree/selecTreeList3.do";
      			$.ajax({
      				url:url,
      				dataType:'json',
      				success:function(data){
      					//alert(data)
      					var zNodes=data;
      					$.fn.zTree.init($("#ztree3"), setting3, zNodes);	
      				}
      			})
      		});
       //解决空值问题
       function getFont(treeId, node) {
      		return node.font ? node.font : {};
      	}
      	</script>
      
      • 2
        点赞
      • 0
        收藏
        觉得还不错? 一键收藏
      • 1
        评论
      您好,我理解您的问题是想要使用Java和ztree实现两棵之间的相互移动。 首先,您需要引入ztree的 JavaScript 和 CSS 文件。 然后,您需要在页面中创建两个 ztree,分别表示两棵。可以通过 AJAX 加载节点数据,也可以在页面中直接定义节点数据。 接着,您需要为两个 ztree 绑定拖拽事件。在拖拽结束后,通过获取被拖拽节点的信息,将节点从一棵中移除,并添加到另一棵中。 以下是一个简单的示例代码: ```javascript // 定义 ztree 的配置 var setting = { view: { dblClickExpand: false }, data: { key: { name: "nodeName" }, simpleData: { enable: true, idKey: "nodeId", pIdKey: "parentNode", rootPId: null } }, callback: { onDrop: function(event, treeId, treeNodes, targetNode, moveType) { // 获取被拖拽节点的信息 var node = treeNodes[0]; var nodeId = node.nodeId; var nodeName = node.nodeName; var parentNode = node.parentNode; // 将节点从一棵中移除 var treeObj = $.fn.zTree.getZTreeObj(treeId); treeObj.removeNode(node); // 添加节点到另一棵中 var targetTreeObj = $.fn.zTree.getZTreeObj(targetNode.treeId); var targetNodeObj = targetTreeObj.getNodeByTId(targetNode.tId); targetTreeObj.addNodes(targetNodeObj, { nodeId: nodeId, nodeName: nodeName, parentNode: targetNodeObj.nodeId }); } } }; // 创建两个 ztree var tree1Nodes = [ {nodeId: 1, nodeName: "节点1", parentNode: null}, {nodeId: 2, nodeName: "节点2", parentNode: 1}, {nodeId: 3, nodeName: "节点3", parentNode: 1} ]; var tree2Nodes = [ {nodeId: 4, nodeName: "节点4", parentNode: null}, {nodeId: 5, nodeName: "节点5", parentNode: 4}, {nodeId: 6, nodeName: "节点6", parentNode: 4} ]; $.fn.zTree.init($("#tree1"), setting, tree1Nodes); $.fn.zTree.init($("#tree2"), setting, tree2Nodes); ``` 在上面的示例代码中,我们定义了一个名为 `setting` 的 ztree 配置对象,并将其应用到两个 ztree 上。在 `onDrop` 回调函数中,我们获取被拖拽节点的信息,并将其移动到目标中。 希望这个示例可以帮助到您。如果您有任何问题,请随时提出。

      “相关推荐”对你有帮助么?

      • 非常没帮助
      • 没帮助
      • 一般
      • 有帮助
      • 非常有帮助
      提交
      评论 1
      添加红包

      请填写红包祝福语或标题

      红包个数最小为10个

      红包金额最低5元

      当前余额3.43前往充值 >
      需支付:10.00
      成就一亿技术人!
      领取后你会自动成为博主和红包主的粉丝 规则
      hope_wisdom
      发出的红包
      实付
      使用余额支付
      点击重新获取
      扫码支付
      钱包余额 0

      抵扣说明:

      1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
      2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

      余额充值