`
everlxq
  • 浏览: 108751 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类
最新评论

ZTreeDemo

 
阅读更多
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  	<link rel="stylesheet" href="css/demo.css" type="text/css">
	<link rel="stylesheet" href="css/zTreeStyle/zTreeStyle.css" type="text/css">
  <script type="text/javascript" src="js/jquery-1.4.4.min.js"></script>
  <script type="text/javascript" src="js/jquery.ztree.core-3.5.js"></script>
  <script type="text/javascript" src="js/jquery.ztree.excheck-3.5.js"></script>
    <base href="<%=basePath%>">
    <title>ZTree</title>
    <script type="text/javascript">
    var setting={
    	check: {
				enable: true,
				chkStyle: "checkbox",
				chkboxType: { "Y": "", "N": ""}
			},
			data: {
				simpleData: {
					enable: true
				}
			},
			callback: {
				onCheck: onCheck,
				onClick: zTreeOnClick,
				beforeCheck: zTreeBeforeCheck
	}
    };
    var s="";
    function zTreeBeforeCheck(treeId, treeNode) {
    	if(treeNode!=null){
    	for(var i=0;i<treeNode.length;i++){
    		s+=treeNode[i].name+",";
    	}
    	}
    };
    function onCheck(e, treeId, treeNode) {
			var zTree = $.fn.zTree.getZTreeObj("treedemo");
			var select = $("#select").val();
			if(select==0){
				alert("请选择一个选取类型..");
				treeNode.checked=false;
			}
			if(select==1){
			s=treeNode.name+",";
		if(!treeNode.checked){
			var nodes = treeNode.children;
			if(nodes!=null){
			for(var i=0;i<nodes.length;i++){
				if(nodes[i].checked==true){
					zTree.checkAllNodes(false);
				}
			}
			}
        }else{
            zTree.checkAllNodes(false);
            var nodes = treeNode.children;
            zTree.checkNode(treeNode, !treeNode.checked, true);
           if(nodes!=null){
            for(var i=0;i<nodes.length;i++){
            	zTree.checkNode(nodes[i], !nodes[i].checked, true);
            	s+=nodes[i].name+",";
            }
          }
         }
		}
		if(select==2){
			var node= treeNode.getParentNode();
			if(treeNode.checked==true){
			if(!node.checked==true){
			var nodes1 = zTree.getCheckedNodes(true);
			if(nodes1!=null){
			var node1 = nodes1[0];
			var nodes2=node1.children;
			if(nodes2!=null){
			var flags=false;
			for(var i=0;i<nodes2.length;i++){
				if(treeNode.name==nodes2[i].name){
					flags=true;
				}
			}
			if(!flags){
				zTree.checkAllNodes(false);
			}
			}
			}
			zTree.checkNode(node, !node.checked, true);
			zTree.checkNode(treeNode, true, true);
			s=node.name+","+treeNode.name+",";
			}else{
			var nodes1 = zTree.getCheckedNodes(true);
			var node1 = nodes1[0];
			var nodes2=node1.children;
			s+=treeNode.name+",";
			var flags=false;
			for(var i=0;i<nodes2.length;i++){
				if(treeNode.name==nodes2[i].name){
					flags=true;
				}
			}
			if(!flags){
				zTree.checkAllNodes(false);
				zTree.checkNode(node, !node.checked, true);
			zTree.checkNode(treeNode, !treeNode.checked, true);
			}
			}
		  }
		}
           $("#text").attr("value", s.substring(0,s.length-1));
		};
    function zTreeOnClick(event, treeId, treeNode,clickFlag) {
    //alert(treeNode.tId + ", " + treeNode.name);
     var zTree = $.fn.zTree.getZTreeObj("treedemo");
            //var nodes = zTree.getNodes();
            var nodes = treeNode.children;
            var s=treeNode.name+",";
            for(var i=0;i<nodes.length;i++){
            	s+=nodes[i].name+",";
            }
           $("#text").attr("value", s);
};

   var  znodes=[
	   {id:1,pId:0,name:"山东",open:true},
	   {id:11,pId:1,name:"临沂"},
	   {id:12,pId:1,name:"青岛"},
	   {id:111,pId:11,name:"平邑",open:true},
	   {id:112,pId:11,name:"费县"},
	   {id:1111,pId:111,name:"流峪"},
	   {id:1112,pId:111,name:"仲村"},
	   {id:11111,pId:1111,name:"日本"}
	   ];
    $(function(){
    	$.fn.zTree.init($("#treedemo"),setting,znodes);
    });
    
    </script>
  </head>
  <body>
    This is my JSP page. <br>
    	<input type="text" id="text"/>
		<div id="treedemo" class="ztree"></div>
		<input type="button" value="button" onclick="showCheckeds()"/>
		<input type="hidden" value="0" id="select"/>
		<input type="button" value="根据上级部门选取" onclick="selectByParent()"/>
		<input type="button" value="根据下级部门选取" onclick="selectByChild()"/>
		<script type="text/javascript">
		function selectByParent(){
			if($("#select").val()==2){
			var zTree = $.fn.zTree.getZTreeObj("treedemo");	
			 zTree.checkAllNodes(false);
			}
			$("#select").attr("value",1);
			alert(1);
		}
		
		function selectByChild(){
			if($("#select").val()==1){
			var zTree = $.fn.zTree.getZTreeObj("treedemo");	
			 zTree.checkAllNodes(false);
			}
			$("#select").attr("value",2);
			alert(2);
		}
		
		function showCheckeds(){
		var zTree = $.fn.zTree.getZTreeObj("treedemo");
		var nodes = zTree.getCheckedNodes(true);
		var s="";
		for(var i=0;i<nodes.length;i++){
			s+=nodes[i].name+",";
		}
		alert(s);
		}
		</script>
  </body>
</html>



{id:12,pId:1,name:"青岛"} pId中I是大写

class="ztree" 是必须的

$(function(){
    $.fn.zTree.init($("#treedemo"),setting,znodes);
    });
初始化树的方法

callback: {
onClick: zTreeOnClick
}

function zTreeOnClick(event, treeId, treeNode) {
    alert(treeNode.tId + ", " + treeNode.name);
};

点击的callback事件


实现了点击节点,他的子节点(不包含孙子节点)也同时选中或取消,在点击了这个节点(定为1)后,点击其他节点,1节点及其子节点如果是选中状态则取消选中状态。
返回此节点及其子节点的name && id。
当一个节点1与他的子节点被选中后,点击字节点时,这个子节点11及其他本身的自己点不会选中,11节点变成为选中状态
返回checked的节点属性。

brforeCheck方法实现通过子节点找父节点1,再添加1的多个子节点,以及取消功能
实现点击不是父节点1的子节点2时,取消所选中选项,将节点2及其父节点选中!

子找父,父找子 之间切换先取消树的所有选项框的选中状态

解决刚开始时获取选中项时空值导致不能选择父节点的问题。判断获得的集合是否为空。


解决一开始子节点不能选中的问题。顺序乱,想的不周全


callback: {                 

                onClick: onClick
            }
        };
        function onClick(event, treeId, treeNode,clickFlag) {
            alert(treeNode.tId + ", " + treeNode.name);//点击直接返回节点对象treeNode
            var zTree = $.fn.zTree.getZTreeObj("treeDemo");
            //var nodes = zTree.getNodes();
            var nodes = zTree.getSelectedNodes();
            alert(nodes[0].name);//返回被选中节点对象
        };


获得checked或selected节点  详细查看API

需求实现
分享到:
评论

相关推荐

    ztree demo

    在"ztree demo"中,我们可以看到zTree如何通过JSON数据格式来构建和操作树结构。JSON数据包含节点ID、父节点ID、节点文本、以及各种扩展属性,这使得动态加载和更新数据变得十分便捷。 其次,zTree提供了丰富的事件...

    jQuery ztreedemo

    **jQuery ztreedemo** `jQuery ztreedemo` 是一个基于 jQuery 框架的树形控件示例,它展示了如何在网页中创建和操作交互式的树状结构。这个示例通常用于构建层级数据的展示,比如网站导航、文件系统或者数据库层次...

    zTree demo

    使用jqueryZtree 构建的树,简单清晰的案例,方便新手学习

    ztreeDemo.rar

    【标题】"ztreeDemo.rar" 是一个包含有关如何实现基于IbatisNet的无限级树形菜单的示例项目。这个压缩包中的内容主要是演示了如何利用zTree这个JavaScript库来构建一个动态、可分页的数据展示结构。 【描述】提到的...

    ZTreeDemo(asp.net版)

    **ZTreeDemo(asp.net版)** ZTree是一款基于JavaScript的树形插件,它广泛应用于Web开发中,尤其在ASP.NET环境下,可以用于构建层级结构的展示和管理功能。这个"ZTreeDemo(asp.net版)"示例旨在演示如何在ASP.NET...

    ztreedemo ajax

    《深入解析ZTreeDemo与Ajax技术的融合应用》 ZTreeDemo是一款基于JavaScript实现的树形控件,它以其强大的功能、丰富的展示效果以及灵活的API接口,深受开发者喜爱。在实际开发中,ZTreeDemo常常与Ajax技术相结合,...

    Ztree demo

    在本示例中,"Ztree demo" 提供了一个演示,展示了如何在ZTree中实现取消选择、复选框(checkbox)功能以及全选和取消全选的操作。这些功能在数据管理、目录浏览或者权限控制等场景中非常实用。 ZTree的核心在于其...

    zTreedemo树型加载数据

    本示例主要探讨的是zTree v3.5版本的一个具体应用——"zTreedemo树型加载数据"。 zTree是一款轻量级的JavaScript组件,它提供了一系列丰富的配置选项和API接口,使得开发者可以轻松地在网页上创建具有各种功能的树...

    zTree DEMO和API

    在"zTree DEMO和API"这个压缩包中,包含了zTree V3的示例代码和相关API文档,便于开发者理解和学习如何运用此插件。 zTree的核心功能包括但不限于: 1. **动态加载**:支持异步加载数据,可以根据用户的操作或需求...

    ztree 全部Demo

    覆盖全部ztree demo程序 ztree标准 JSON 数据 添加、更新、删除节点 连接线显示与不显示 自定义节点图标、字体 异步加载数据 鼠标监听事件 复选框单选框使用 大数据量分页加载 等等... 供学习,快速企业开发使用

    zTree树的demo和API

    总结来说,zTree_v3压缩包是学习和使用zTree的重要资源,其中的demo可以帮助我们快速上手,而API文档则提供了详细的技术指导,让开发者能够充分利用zTree的强大功能,创建出高效、美观的树形结构界面。在实际开发中...

    struts2整合的ztree Demo

    在本"Struts2整合的ztree Demo"中,我们将探讨如何将这两者结合,实现动态数据交互,以及包含MySQL数据库的后端支持。 首先,让我们深入了解Struts2与ZTree的集成过程。Struts2通过Action类处理HTTP请求,并返回...

    ztree ztree demo 加源码

    《zTree全方位解析:源码、API与应用实践》 zTree是一款基于JavaScript的树状图插件,广泛应用于网页中的目录展示、数据组织、权限管理等场景。它以其轻量级、高度可定制和易用性而备受青睐。本文将深入探讨zTree的...

    ztree树形菜单demo

    在本“ztree树形菜单demo”中,我们将探讨ZTree的核心功能、如何实现节点的显示以及如何进行实际应用。 ZTree的核心特性包括: 1. **丰富的API接口**:ZTree提供了大量的API接口,允许开发者对树形结构进行动态...

    zTree树的Demo及全部文档

    在“zTree_v3-master”这个压缩包中,包含了zTree的最新版本3的相关Demo和完整文档,可以帮助开发者快速理解和应用zTree。 1. **zTree的基本概念** - **节点(Node)**:zTree中的基本元素,代表树形结构中的一个...

    ztree demo 与详细的API中文说明文档, JS插件

    $.fn.zTree.init($("#treeDemo"), setting, zNodes); }); ``` 以上是对zTree插件的基本介绍和使用示例。通过zTree,开发者可以轻松创建具备复选功能的树形控件,实现复杂的数据组织和用户交互。结合详细的API文档...

Global site tag (gtag.js) - Google Analytics