《ztree+数据库数据展示+OnCheck事件的回调函数》

1,entity类(也可用map集合)

package com.books.entity;
/**
	 * ztree实体类
	 * @return
	 */
public class ztreeMenu {
	
	private String id; //节点id
	private String pId; //父节点id
	private String name; //节点名
	private String checked; //复选框,是否选择(true、false)
	private String open; //节点是否展开(true、false)
	//还可以添加其他属性 如:URL等
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getpId() {
		return pId;
	}
	public void setpId(String pId) {
		this.pId = pId;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getChecked() {
		return checked;
	}
	public void setChecked(String checked) {
		this.checked = checked;
	}
	public String getOpen() {
		return open;
	}
	public void setOpen(String open) {
		this.open = open;
	}
	
	@Override
	public String toString() {
		return "ztreeMenu [id=" + id + ", pId=" + pId + ", name=" + name + ", checked=" + checked + ", open=" + open + "]";
	}
	

}

2,dao

/**
	 * ztree菜单数据--普通方法+实体类
	 * @return
	 */
	public List<ztreeMenu> selzTreeMenu(){
		List<ztreeMenu> list=new ArrayList<>();
		try {
			String sql=" select MENUBID as id,PARENTBID as pId,MENUBNAME as name,Root as checked,open from t_books_menu where Extend1 like 'root' ";
			Connection con=DBAccess.getConnection();
			PreparedStatement ps = con.prepareStatement(sql);
			ResultSet rs=ps.executeQuery();
			ztreeMenu zm=null;
			while(rs.next()) {
				zm=new ztreeMenu();
				zm.setId(rs.getString("id")); //节点id
				zm.setpId(rs.getString("pId")); //节点父id
				zm.setName(rs.getString("name")); //节点名
				zm.setChecked(rs.getString("checked")); //复选框,是否选择(true、false)
				zm.setOpen(rs.getString("open")); //节点是否展开(true、false)
				list.add(zm);
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return list;
	}

3,Action

/**
	 * 展示数据的方法--ztree
	 * @param req
	 * @param resp
	 * @return
	 */
	public String zTreeRootList(HttpServletRequest req, HttpServletResponse resp) {
		try {
			List<ztreeMenu> rootList = rd.selzTreeMenu();
			ObjectMapper om = new ObjectMapper();
			ResponseUtil.write(resp, om.writeValueAsString(rootList));
		} catch (JsonProcessingException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return "null";
	}

4,js

//-------------------------------------ztree树形菜单展示权限数据-------------------------------------------
					
		     //setting:zTree的参数配置
			 var setting = {
					 view: {
						    selectedMulti: true, //设置是否能够同时选中多个节点
						    showIcon: true,  //设置是否显示节点图标
						    showLine: true,  //设置是否显示节点与节点之间的连线
						    showTitle: true,  //设置是否显示节点的title提示信息
						   },
						   data: {
						     simpleData: {
						     enable: true, //设置是否启用简单数据格式(zTree支持标准数据格式跟简单数据格式,上面例子中是标准数据格式)
						      idKey: "id",  //设置启用简单数据格式时id对应的属性名称
						      pidKey: "pId" //设置启用简单数据格式时parentId对应的属性名称,ztree根据id及pId层级关系构建树结构
						    }
						   },
						   check:{
						    enable: true,  //设置是否显示checkbox复选框
						    chkStyle: "checkbox",
							chkboxType: { "N": "ps", "Y": "ps" },//子节点(s),父节点(p);('Y','N'是否选中)
						    autoCheckTrigger: true,
						   },
						   callback: {
							    onClick: function(treeId, treeNode) {
									var treeObj = $.fn.zTree.getZTreeObj(treeNode);//拿到zTree对象
									var selectedNode = treeObj.getSelectedNodes()[0];//拿到被选择的第一个节点对象
									alert("权限:"+selectedNode.name+"; 是否授权:"+selectedNode.root);
								   },    //定义节点单击事件回调函数
						         onCheck: zTreeOnCheck
							   },
						   //获取数据
						   async : {
								enable : true, //设置启用异步加载
								contentType : "application/json", //定义ajax提交参数的参数类型,一般为json格式
								dataType : "text", //数据类型
								url : rUrl+'/userAction.action?methodName=zTreeRootList', //请求路径
								dataFilter : ajaxDataFilter //返回数据(不能直接用,需要打印)
						}
								   
			 };
					 
			// 打印数据库加载的数据
			function ajaxDataFilter(treeId, parentNode, responseData) {
					if (responseData) {
						console.log(responseData);
					}
					return responseData;
				};
						
			 $.fn.zTree.init($("#zTreeBookRoot"), setting); //加载数据				
					
			         }
		
		    }]
	
	});
	
    //用于捕获 checkbox / radio 被勾选 或 取消勾选的事件回调函数
	//修改权限
	function zTreeOnCheck(event, treeId, treeNode) {
		
//		if(treeNode.checked==false){
//			alert(treeNode.name + ", 权限已撤销!" );
//		}else{
//			alert(treeNode.name + ", 授权成功!" );
//		}
	    
	    $.ajax({
			   url:rUrl+'/userAction.action?methodName=setRoot&&MenuBid='+treeNode.id+'&&Root='+treeNode.checked,
			  });
	    
	};

5,jsp 展示

     <div>
      <ul id="zTreeBookRoot" class="ztree"></ul>
     </div>

6,ztree插件导入–见
ztree插件导入

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值