<%@ 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如何通过JSON数据格式来构建和操作树结构。JSON数据包含节点ID、父节点ID、节点文本、以及各种扩展属性,这使得动态加载和更新数据变得十分便捷。 其次,zTree提供了丰富的事件...
**jQuery ztreedemo** `jQuery ztreedemo` 是一个基于 jQuery 框架的树形控件示例,它展示了如何在网页中创建和操作交互式的树状结构。这个示例通常用于构建层级数据的展示,比如网站导航、文件系统或者数据库层次...
使用jqueryZtree 构建的树,简单清晰的案例,方便新手学习
【标题】"ztreeDemo.rar" 是一个包含有关如何实现基于IbatisNet的无限级树形菜单的示例项目。这个压缩包中的内容主要是演示了如何利用zTree这个JavaScript库来构建一个动态、可分页的数据展示结构。 【描述】提到的...
**ZTreeDemo(asp.net版)** ZTree是一款基于JavaScript的树形插件,它广泛应用于Web开发中,尤其在ASP.NET环境下,可以用于构建层级结构的展示和管理功能。这个"ZTreeDemo(asp.net版)"示例旨在演示如何在ASP.NET...
《深入解析ZTreeDemo与Ajax技术的融合应用》 ZTreeDemo是一款基于JavaScript实现的树形控件,它以其强大的功能、丰富的展示效果以及灵活的API接口,深受开发者喜爱。在实际开发中,ZTreeDemo常常与Ajax技术相结合,...
在本示例中,"Ztree demo" 提供了一个演示,展示了如何在ZTree中实现取消选择、复选框(checkbox)功能以及全选和取消全选的操作。这些功能在数据管理、目录浏览或者权限控制等场景中非常实用。 ZTree的核心在于其...
本示例主要探讨的是zTree v3.5版本的一个具体应用——"zTreedemo树型加载数据"。 zTree是一款轻量级的JavaScript组件,它提供了一系列丰富的配置选项和API接口,使得开发者可以轻松地在网页上创建具有各种功能的树...
在"zTree DEMO和API"这个压缩包中,包含了zTree V3的示例代码和相关API文档,便于开发者理解和学习如何运用此插件。 zTree的核心功能包括但不限于: 1. **动态加载**:支持异步加载数据,可以根据用户的操作或需求...
覆盖全部ztree demo程序 ztree标准 JSON 数据 添加、更新、删除节点 连接线显示与不显示 自定义节点图标、字体 异步加载数据 鼠标监听事件 复选框单选框使用 大数据量分页加载 等等... 供学习,快速企业开发使用
总结来说,zTree_v3压缩包是学习和使用zTree的重要资源,其中的demo可以帮助我们快速上手,而API文档则提供了详细的技术指导,让开发者能够充分利用zTree的强大功能,创建出高效、美观的树形结构界面。在实际开发中...
在本"Struts2整合的ztree Demo"中,我们将探讨如何将这两者结合,实现动态数据交互,以及包含MySQL数据库的后端支持。 首先,让我们深入了解Struts2与ZTree的集成过程。Struts2通过Action类处理HTTP请求,并返回...
《zTree全方位解析:源码、API与应用实践》 zTree是一款基于JavaScript的树状图插件,广泛应用于网页中的目录展示、数据组织、权限管理等场景。它以其轻量级、高度可定制和易用性而备受青睐。本文将深入探讨zTree的...
在本“ztree树形菜单demo”中,我们将探讨ZTree的核心功能、如何实现节点的显示以及如何进行实际应用。 ZTree的核心特性包括: 1. **丰富的API接口**:ZTree提供了大量的API接口,允许开发者对树形结构进行动态...
在“zTree_v3-master”这个压缩包中,包含了zTree的最新版本3的相关Demo和完整文档,可以帮助开发者快速理解和应用zTree。 1. **zTree的基本概念** - **节点(Node)**:zTree中的基本元素,代表树形结构中的一个...
$.fn.zTree.init($("#treeDemo"), setting, zNodes); }); ``` 以上是对zTree插件的基本介绍和使用示例。通过zTree,开发者可以轻松创建具备复选功能的树形控件,实现复杂的数据组织和用户交互。结合详细的API文档...