/**
*
* @param nodes 所有Node
* @param node 指定ID的节点存放对象,初始为空
* @param nodeid 指定Node的ID
* @return 得到的Node树
*/
public Node getNodeById(List<Object[]> nodes,Node node,String nodeid){
if(nodes == null){
nodes = treebiz.getAllNodes();
}
for(Object[] tnode:nodes){
if(node==null&&((String)tnode[0]).equals(nodeid)){
node = new Node();
node.setId(nodeid);
node.setEditable(false);
node.setText((String)tnode[3]);
node.setHref((String)tnode[4]);
node.setLeaf(true);
getNodeById(nodes,node,nodeid);
return node;
} else if(node!=null&&StringUtils.isNotBlank((String)tnode[1])&&((String)tnode[1]).equals(nodeid)) {
//如果不是第一次遍历则需要查找前驱节点
String parentid = (String)tnode[1];
String myid = (String)tnode[0];
//找到指定Node的子Node
if(parentid.equalsIgnoreCase(nodeid)){
Node node2 = new Node();
node2.setId(myid);
node2.setEditable(false);
node2.setText((String)tnode[3]);
node2.setHref((String)tnode[4]);
node.getChildren().add(node2);
node.setLeaf(false);
getNodeById(nodes,node2,myid);
} else {
//没有找到父节点,该节点为叶子节点
}
}
}
return node;
}
分享到:
相关推荐
5. **递归加载**:为了实现无限层级的树,需要在ExtJS的TreeStore中设置递归加载的策略,当用户展开一个节点时,TreeStore会自动请求其子节点数据。 6. **用户交互**:利用ExtJS的API,可以添加额外的交互功能,如...
本例"JSP实现树型结构TREE"提供了一个使用JSP(JavaServer Pages)、EXTJS(一个前端JavaScript框架)、JSON(JavaScript Object Notation)以及MySQL数据库来创建树形结构的示例,这对于初学者或开发者来说,是一个...
但是,由于树形结构可能动态生成,或者节点数据是字符串形式,作者可能选择使用`eval()`来解析并执行添加事件处理程序的代码。 下面是一个简化的示例,展示了如何使用`eval()`为树节点添加点击事件: ```...
- **平衡二叉树**:如AVL树、红黑树,用于高效搜索、插入和删除操作。 #### Servlet生命周期与应用 - **初始化**:Servlet被加载时调用init()方法进行初始化。 - **服务请求**:doGet()或doPost()方法处理HTTP GET...
1.2.6 在java中使用json / 12 1.2.7 更多有关json的信息 / 15 1.3 ext js 4概述 / 15 1.4 ext js的开发工具的获取、安装与配置介绍 / 18 1.4.1 ext designer / 18 1.4.2 在visual studio中实现智能提示 / 23 ...
例如,可以使用`treePanel.getRootNode()`获取树的根节点,然后递归或循环遍历其子节点。如果`example4.js`中定义了这样的函数,那么这就是实际操作TREE的关键代码。 dright.json可能是TREE的数据源,存储了TREE...
JavaScript TreeView 控件在网页开发中...通过递归遍历节点树,我们可以确保整个树结构中的节点状态保持一致,满足功能需求。这个过程既需要对JavaScript有扎实的理解,也需要对TreeView控件的内部工作原理有所了解。