zTree示例

ZTree下载地址包含示例

http://www.ztree.me/v3/main.php#_zTreeInfo


<div style="width: 300px;height: 300px;border:dashed 1px;">
	<ul id="treeDemo" class="ztree"></ul>
</div>

<script type="text/javascript">
var treeNodes=null;
var spath="${pageContext.request.contextPath}";
var setting = {
		async:{
			enable: true,//异步处理
			type:"post",
			dataType:"text",
			url: spath+"/MethodServlet?method=tree",//异步获取json格式数据的路径
			dataFilter:onLabelFun
		},
		data:{
			view: {
				dblClickExpand: true,
				showLine: false,
				showTitle:true 
			 },
		    simpleData:{
		    	enable: true,
		    	idKey:"fCode",              
		        pIdKey:"fParent",
		        rootPId: ""
		    }
		},              
	    callback: {  
            onClick: function(treeId, treeNode) {  
                var treeObj = $.fn.zTree.getZTreeObj(treeNode);  
                var selectedNode = treeObj.getSelectedNodes()[0];  
                //alert(selectedNode.fCode);  
            }  
        }  
};
$(function(){
	$.fn.zTree.init($("#treeDemo"), setting, treeNodes);
	SelectNode();
});
function SelectNode() {

	var treeObj = $.fn.zTree.getZTreeObj("treeDemo");
	var treenode = treeObj.getNodeByParam("fCode", "1.1.1", null);
	treeObj.expandNode(treenode, true, true, true);
	treeObj.selectNode(treenode);
}

function onLabelFun(treeId, parentNode, responseData){
	 if (responseData) {
		 for(var i =0; i < responseData.length; i++) {
			 responseData[i].name=responseData[i].fCode+"-"+responseData[i].name;
			 if(responseData[i].fCode=="1.1.1"){
				 responseData[i].icon="${pageContext.request.contextPath}/ztreeStyle/img/diy/5.png";
			 }
		 }
	 }
	 return responseData;
}


Servlet代码

doPost代码

JSONArray json=JSONArray.fromObject(getTree());
out.print(json.toString());


public ArrayList<HashMap<String, Object>> getTree(){
		HashMap<String, Object> map=null;
		ArrayList<HashMap<String, Object>> lists=new ArrayList<HashMap<String,Object>>();
		map=new HashMap<String, Object>();
		map.put("fCode", "1");
		map.put("name", "节点1");
		map.put("fParent", "");
		map.put("open", true);
		map.put("page", "grid.jsp");
		lists.add(map);
		
		map=new HashMap<String, Object>();
		map.put("fCode", "1.1");
		map.put("name", "节点1.1");
		map.put("fParent", "1");
		map.put("page", "zTree.jsp");
		lists.add(map);
		
		map=new HashMap<String, Object>();
		map.put("fCode", "1.2");
		map.put("name", "节点1.2");
		map.put("fParent", "1");
		map.put("page", "zTree.jsp");
		lists.add(map);
		
		map=new HashMap<String, Object>();
		map.put("fCode", "1.1.1");
		map.put("name", "节点1.1.1");
		map.put("fParent", "1.1");
		lists.add(map);
		return lists;
	}




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
`dataFilter` 是 ztree 提供的一个用于对异步加载的数据进行预处理的回调函数。在使用 `async` 属性异步加载数据时,可以通过 `dataFilter` 对后端返回的 JSON 数据进行过滤和处理,然后返回符合 ztree 要求的 JSON 数据格式。 `dataFilter` 回调函数有两个参数: - `treeId`:树的唯一标识符,一般是 ztree 容器的 ID; - `parentNode`:当前节点的父节点,如果是根节点则为 null。 `dataFilter` 函数需要返回一个符合 ztree 要求的 JSON 数据格式,如下所示: ``` [ { "id": 1, "pId": 0, "name": "根节点", "children": [ { "id": 2, "pId": 1, "name": "子节点1" } ] } ] ``` 在 `dataFilter` 函数中,可以对后端返回的 JSON 数据进行任意处理,然后返回符合 ztree 要求的 JSON 数据格式。例如,可以根据后端返回的数据添加自定义属性,或者根据节点名称进行过滤等等。 下面是一个使用 `dataFilter` 进行过滤的示例代码: ``` $(document).ready(function(){ $.fn.zTree.init($("#treeDemo"), { async: { enable: true, url: "/api/tree", autoParam: ["id=parentId"], dataFilter: function(treeId, parentNode, responseData) { // 对后端返回的数据进行过滤 var filteredData = []; for (var i = 0; i < responseData.length; i++) { var node = responseData[i]; if (node.name.indexOf("过滤关键字") !== -1) { // 如果节点名称包含过滤关键字,则不添加该节点 continue; } // 添加自定义属性 node.isMyNode = true; filteredData.push(node); } // 返回符合 ztree 要求的 JSON 数据格式 return filteredData; } }, data: { simpleData: { enable: true, idKey: "id", pIdKey: "parentId", rootPId: null } } }); }); ``` 在上述代码中,`dataFilter` 回调函数对后端返回的数据进行过滤,如果节点名称包含过滤关键字,则不添加该节点。同时,为每个节点添加了一个自定义属性 `isMyNode`。最后,返回符合 ztree 要求的 JSON 数据格式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值