ZK 中的Tree可以实现递归调用,该方法可以实现无限级次的分类,如ERP中的物料分类,人力资源中的组织架构分级等.
1、数据库设计中一般如下:ID,NAME,parentid,level,其中parentid就是指上级的ID(parent--id)引用。
2、下面list就是第一层应查询出来的数据库列表,也是树的第一层数据。接下来就是创建列表的表头数据。
public Tree createTree(String name, List<?> list) {
Tree tree = new Tree();
tree.setHeight("500px");
Treecols treecols = new Treecols();
Treecol treecol = new Treecol(name);
treecol.setParent(treecols);
treecols.setParent(tree);
Treechildren firstChild = new Treechildren();
//下面语句中的方法就递归调用的主要实现方法
tree.appendChild(AddTreeItem(firstChild, list));
return tree;
}
3、递归实现方法
public Treechildren AddTreeItem(Treechildren child, List list) {
for (Iterator<?> iter = list.iterator(); iter.hasNext();) {
//list数据转换为部门数据
Depart depart = (Depart) iter.next();
//通过部门ID获取下属部门列表数据
List<?> row = getCompentList(depart.getFid());
//创建树的行信息
Treeitem firstItem = new Treeitem();
firstItem.setValue(depart.getFid());
Treerow firstRow = new Treerow();
Treecell firstCell = new Treecell(depart.getFname());
firstCell.setParent(firstRow);
firstRow.setParent(firstItem);
firstItem.setParent(child);
//判断有下属部门,则创建第二层实现递归调用
if (row.size() > 0){
Treechildren secondchild = new Treechildren();
firstItem.appendChild(AddTreeItem(secondchild, row));
}
}
return child;
}
4、在你的页面上这现实就可以了,调用这个方法。
public void refshTree() {
unit_center.getChildren().clear();
String name = new String("所有单位");
unit_west.getChildren().clear();
unit_tree.getChildren().clear();
unit_tree = createTree(name, getDepartList());
unit_tree.setParent(unit_west);
}
分享到:
相关推荐
在IT领域,ZK树(Zero-Knowledge Tree)是一种数据结构,主要用于处理和验证大量数据的零知识证明。这种树状结构允许一个实体向另一个实体证明它拥有某些信息,而无需透露任何具体信息本身,从而保护了数据的隐私。...
本资源主要关注如何使用Java集合框架来递归实现一个通用的树结构,即`Tree`。下面我们将深入探讨这个主题。 首先,我们要了解Java集合框架。Java集合框架是Java语言提供的一组接口和类,用于存储和操作各种数据结构...
一个简单的小例子递归实现list按照index排序的树
由于阿克曼函数的递归深度可能非常深,因此非递归实现通常是更有效的方法,特别是当使用堆栈来模拟递归调用时。非递归实现的基本思想是将递归调用转化为循环,并使用数据结构(如堆栈)存储中间结果,避免了递归带来...
为了更好地理解和利用这个示例,你需要解压"tree递归.rar",查看源代码,并了解其中的注释。通过学习这个示例,你可以掌握递归遍历树结构的基本技巧,这将对你的编程技能大有裨益。同时,这个例子还涉及到数据库操作...
至于文件“Tree递归”,可能包含了实现这个功能的代码示例,例如C#或VB.NET的源文件。文件内容可能包括数据库连接字符串、SQL查询语句、递归函数的定义以及其他辅助方法,如将数据集转换为树节点集合等。 总的来说...
本文将深入探讨如何使用递归实现ADF(Attribute Dependency Framework)动态树。ADF动态树是一种数据结构,它能够根据特定规则自动生成或调整树状结构,常用于数据建模、图形用户界面设计或解析复杂数据结构。 首先...
非递归版本更适合内存有限或者递归深度受限的场景,而递归版本则代码简洁,易于理解。 以上就是关于快速选择算法的非递归和递归实现的详细介绍。通过合理地选取基准和适当的数据结构,快速选择算法可以在大数据集上...
"tree easyui java 树递归"这个主题涉及到的就是如何在Java环境下利用EasyUI库创建一个树形结构,并通过SpringMVC框架与数据库进行交互。下面将详细阐述相关知识点。 首先,EasyUI是一个基于jQuery的UI组件库,提供...
### 两种MySQL递归Tree查询效率分析 #### 一、背景与目的 在数据库操作中,经常需要处理具有层级结构的数据。例如,在处理组织结构、文件系统或是地区划分时,通常会采用递归的方式来查询这些层级关系。MySQL作为...
快速排序非递归实现的优点包括避免了递归带来的系统栈空间开销,对于大数据量排序更有效。同时,由于使用了栈,其时间复杂度依然保持为O(n log n),在平均情况下表现优秀。但缺点是在最坏的情况下,如果输入数组已经...
为了实现递归,我们需要一个方法,该方法接收当前节点作为参数,并遍历其所有子节点,对每个子节点调用自身,直到没有更多的子节点为止。 以下是一个简单的Java代码示例,展示了如何使用递归来遍历树结构: ```...
阿克曼函数是一种著名的计算上界递归函数,它在理论计算机科学中有着重要的地位,尤其是在探讨递归和计算复杂性的领域。这个函数是不可计算的,也就是说,它不能通过有限步骤的算法来解决,但是可以通过其他方法如...
八皇后递归及非递归实现源码; 八皇后递归及非递归实现源码
根据给定的文件信息,我们可以总结出以下关于“递归实现回文判断”的知识点: ### 一、回文概念 回文是指一个字符串从左到右读和从右到左读都是一样的字符串。例如,“abcba”、“madam”等都是回文字符串。 ### ...
根据给定的代码示例,我们可以看到有两种不同的递归方法实现字符串逆序: 1. **基于索引的方法**(`Reverse(string&s, int index)`) 2. **无参数的方法**(`Reverse(string&s)`) ##### 基于索引的方法 ```cpp ...
### Java使用递归实现字符串反转 在Java编程语言中,递归是一种常用的方法来解决许多问题,特别是那些可以通过分解成更小子问题来解决的问题。本文将详细介绍如何使用递归来实现字符串的反转。 #### 一、递归基础...
C语言递归实现逆序程序 C语言初学者必会
本篇将详细探讨如何使用递归方法来实现C#中的树形结构。 首先,理解树形结构的基本概念至关重要。在计算机科学中,树是由节点(也称为顶点)和边组成的非线性数据结构。每个节点可以有零个或多个子节点,而顶部的...
传统的实现方式通常使用递归算法,但这种方法可能会导致内存消耗过大,尤其是在菜单层级很深的情况下。本主题介绍了一种不依赖递归的高效方法来创建无限级树型菜单,具有快速加载的特点。 首先,我们来看`WriteXML....