jQuery运用BootStrap风格的Ztree前后台传值-多选框

4 篇文章 0 订阅
1 篇文章 0 订阅
我个人后台使用List<Map<String,Object>>拼接,转换为Json数组传递到前台,代码片段如下:
List<Map<String, Object>> resultList = new ArrayList<Map<String, Object>>();
JSONArray jsonStr = null;
Map<String, Object> orgMap = new HashMap<String, Object>();
orgMap.put("open", true); //根节点展开
orgMap.put("id", 1);//根节点的ID
orgMap.put("pId", 0);//父id
orgMap.put("name", "Name"); //根节点的名字
resultList.add(orgMap); //列表中先添加第一级的数据
jsonStr = JSONArray.fromObject(resultList);//转换为Json数组
return jsonStr.toString();
因为前台需要的是下面的结构,所以拼接上述代码。
var zNodes =[
	{id:1, pId:0, name:"[core] 基本功能 演示", open:true,},
	{id:101, pId:1, name:"标准 JSON 数据"},
	{id:102, pId:1, name:"简单 JSON 数据"},
	
	{id:2, pId:0, name:"单选框功能 演示", open:false},
	{id:201, pId:2, name:"Checkbox 勾选操作"},
	{id:206, pId:2, name:"Checkbox演示"},
	
	{id:3, pId:0, name:"编辑功能 演示", open:false},
	{id:301, pId:3, name:"拖拽 节点 基本控制"},
	{id:302, pId:3, name:"拖拽 节点 高级控制"}
	];
前台直接 var zNodes = 进行接收。
<script type="text/javascript">
 var setting = {
		view: {
			//addHoverDom: addHoverDom,//用于当鼠标移动到节点上时,显示用户自定义控件,显示隐藏状态同zTree 内部的编辑、删除按钮
			//removeHoverDom: removeHoverDom,//用于当鼠标移出节点时,隐藏用户自定义控件,显示隐藏状态同 zTree 内部的编辑、删除按钮
			selectedMulti: false //设置是否允许同时选中多个节点。
		},
		check: { //设置zTree是否可以被勾选,及勾选的参数配置
			chkStyle: "checkbox",
			enable: true, //设置 zTree 的节点上是否显示 checkbox / radio
			chkboxType : { "Y" : "", "N" : "" }
		},
		data: {
			simpleData: {
				enable: true //确定 zTree 初始化时的节点数据、异步加载时的节点数据、或 addNodes 方法中输入的 newNodes 数据是否采用简单数据模式 (Array)
			}
		},
		edit: {  //可以编辑节点 : 增 删 改
			enable: false //设置 zTree 是否处于编辑状态,
		},
		callback: {
			onCheck: onCheckNodeSite,  //回调函数,获取选节点
			beforeCheck : function(treeId, treeNode) {//该函数为不选中根节点
                if (treeNode.pId == null) {//判断节点点pId为null时,不被选中
                    alert("请选择子节点!");
                    return false;
                }
            }
		}
	};
	
	var zNodes = <#ztreeList>;//接收后台传过来的json数组
	
	$(document).ready(function(){
		$.fn.zTree.init($("#treeDemo"), setting, zNodes);
	});
	
	var nodeJson = [];
	var treenode;
	function onCheckNodeSite(){//获取所有被选中节点的回调函数
		treenode = $.fn.zTree.getZTreeObj("treeDemo");
		var chkNodeArr = treenode.getCheckedNodes(true);    //true获取选中节点,false未选中节点,默认为true
		for (var i = 0; i < chkNodeArr.length; i++) {
			var channelStr = parentPathName(chkNodeArr[i].parentTId);//获取选中节点的所有父节点名称返回的字符串
			nodeJson[i] = { "id": chkNodeArr[i].id, "name": chkNodeArr[i].name};
			alert(nodeJson[i]);
		}
	};
	
	/* 递归查询选中节点的所有父节点 */
	function parentPathName(parentTId){
		    var treenode = $.fn.zTree.getZTreeObj("treeDemo");
			var str="";
			if(parentTId!=null){
				var node = treenode.getNodeByTId(parentTId);
				if(node!=null && typeof(node)!='undefined'){
					str=parentPathName(node.parentTId);
					str+=node.name+"/";
				}
				return str;
			}
			return "";
	}
	
	//删除选中栏目,调用每个节点上的button函数removeChannel(this),给该button写入id,为chkNodeArr[i].tId,调用下面函数
	button代码,写在获取所有被选中节点的回调函数的循环中
	<button style="background:none;border:none;float:right;" id="'+chkNodeArr[i].tId+'" type="button" οnclick="removeChannel(this)"></button>
	
	function removeChannel(btn){//删除选中栏目
		var node = treenode.getNodeByTId(btn.id);
		treenode.checkNode(node);
		onCheckNodeSite();
	}
	
	/* 删除全部选中 */
	function deleteAll(){
		treenode.checkAllNodes(false);
	}
</script>


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

喵叻嗰咪

如果有用,请作者喝杯咖啡吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值