`

xtree应用实例

阅读更多

最近项目中用到了构造树形目录的功能,简单了解了下dtree和xtree,很多年前就用过dtree,但xtree了解不多,自己没有实际用过。之前一期项目中有相关的代码,为了加快进度就直接拿过来参考,期待能参考个较完善的版本,结果使用中还是遇到了几个问题:
1.子节点名称和父节点名称相同的部分不显示。
2.之前的代码只用到了两级目录,需要修改为支持无限级目录。
3.代码质量不高,并且排版凌乱。

 

问题解决:
1.有同事熟悉js,直接修改了xloadtree2.js中第340行

jsNode.setText(jsAttrs.text.replace(vvv.trim(),""));
替换为:
jsNode.setText(jsAttrs.text);

 

2.节点显示之前,先判断该节点有无子节点,如果有则显示为目录,没有则显示“无下级目录”。
3.代码是否整理和重构,目前我的观点是完全取决于项目的时间周期的紧迫程度。如果项目进度紧张,则先实现功能即可,时间充裕的时候再整理。

 

代码参考:

<script type="text/javascript">
  var tree = new WebFXLoadTree("项目", "basedata_tree.jsp?  level=0&&newtime=<%=new java.util.Date()%>","");
  tree.write();
  tree.expand();
</script>	

 

basedata_tree.jsp

<?xml version="1.0" encoding="GBK"?>
<%@ page contentType="text/xml;charset=GBK"%>

<%@ page import="java.util.*"%>

<jsp:directive.page import="com.dhcc.rt.baseData.service.BaseDataMgrService"/>
<jsp:directive.page import="com.dhcc.common.BaseMgr"/>
<jsp:directive.page import="com.dhcc.common.util.StringUtil"/>

<%request.setCharacterEncoding("GBK");%>
<%
	String level = request.getParameter("level") == null ? "" : request.getParameter("level");
	String baseDataID = request.getParameter("baseDataID") == null ? "" : request.getParameter("baseDataID");
	//level = "2";
	//baseDataID = "6442F8803EDF423AA50A2A439BBD482E";
		
	BaseDataMgrService baseDataMgr = (BaseDataMgrService)BaseMgr.getBean("baseDataMgr");
	
	List list = null;
	if(level.equals("0")){
	 	list = baseDataMgr.findBaseData("","tree");
	}
	if(!level.equals("0")){
		list= baseDataMgr.findBaseData(baseDataID,"tree");
	}
		
	int ilevel = Integer.parseInt(level);
	int ilevel1 = ilevel+1;
	
	String str = "<tree>";
	
	int count = 0;
	if(list != null){
		count = list.size();
	}
	
	String key="BASE_DATA_NAME";
	
	if(count == 0){
		str = str + "<tree  text=\"无下级目录\" />";
	  
	}else{
		Iterator it= list.iterator();
		while(it.hasNext()){
			Map map=(Map) it.next();
			
			baseDataID = StringUtil.nullToStr(map.get("BASE_DATA_ID"));
			String name = StringUtil.nullToStr(map.get(key));
			//out.println("name = "+ name);
			
			if(ilevel < 1){
				str=str+"<tree text=\""+name+"\" src=\"basedata_tree.jsp?level="+ ilevel1 +"&amp;baseDataID="+ baseDataID +"\" toolTip=\"\"/>";
				
			}else{
				int subNodeNumbers = baseDataMgr.findSubNodeSize(baseDataID);//判断节点是否包含子节点
				if(subNodeNumbers > 0){
					str=str+"<tree text=\""+name+"\" src=\"basedata_tree.jsp?level="+ ilevel1 +"&amp;baseDataID="+ baseDataID +"\" toolTip=\"\"/>";
				}else{
					str=str+"<tree text=\""+name+"\" action=\"javascript:parent.goRight('"+ baseDataID +"','')\"  toolTip=\"\"/>";
				}
			}
		}
	}
	
	str=str+"</tree>";	
	out.println(str);
%>

 

 

 

http://moppet.taobao.com/

 

0
4
分享到:
评论

相关推荐

    xtree源包及使用实例

    "使用实例"部分则可能包括了XTREE在不同场景下的应用案例,比如如何用XTREE来构建一个文件系统的目录结构,或者在数据库中实现高效的索引等。这些实例可以帮助初学者更好地理解和掌握XTREE的实际应用。 总之,XTREE...

    扩展xtree选择树

    在Web开发中,它被广泛应用于文件系统导航、组织结构展示、菜单系统等场景,通过xtree,用户可以方便地展开、折叠、选择和操作树中的节点。 1. **xtree的基本概念** - 树结构:xtree是一种以树形结构展示数据的...

    xtree一颗完整的树xtree+oracle+struts

    "xtree"是一个专用于构建这种树形视图的组件,它常与数据库系统(如Oracle)以及MVC框架(如Struts)结合使用,以提供动态的数据加载和交互功能。 首先,我们来看"xtree"。Xtree是一个JavaScript库,主要用于在Web...

    完整的xtree例子 和jsp联系

    【XTreeDemo】是一个关于`xtree`与`jsp`结合使用的综合实例,它涵盖了`xtree`控件的各种功能和交互方式。`xtree`通常用于构建具有层级结构的数据显示,常见于文件系统、组织架构或者数据库树形视图等场景。在`jsp`...

    xtree,xloadtree所需js,css,images文件和实例

    在IT行业中,XTREE和XLoadTree是一种广泛用于构建网页应用程序中的树形结构视图的JavaScript库。这些库主要用于展示层级关系数据,如文件系统、组织结构或菜单系统。它们通常与CSS样式表和图像资源结合使用,以提供...

    树形结构xtree有添加和修改的功能。

    在实际应用中,开发者需要了解如何配置和初始化XTREE实例,设置数据源,监听和响应用户的交互事件,以及如何与服务器进行数据同步。这通常涉及对JSON或其他数据格式的理解,以及如何将这些数据适配到XTREE的模型中。...

    一个不错的XTREE

    这可能是一个实际应用XTREE的实例,用户可以通过这个浏览器查看、搜索和管理存储在XTREE结构中的文件或数据。 在学习XTREE时,你需要理解其核心特性,包括: 1. 自平衡:XTREE能够自动调整其结构以保持平衡,确保...

    xTree树形 (javaScript实例)

    本实例探讨的是“xTree”——一个基于JavaScript实现的树形组件,它允许开发者进行灵活的自定义和修改,以适应各种应用场景。下面我们将深入探讨这个主题。 首先,JavaScript是一种广泛使用的客户端脚本语言,它在...

    xtree一个完整项目

    综上所述,"xtree一个完整项目"是一个结合了Java Web技术和xtree组件的实例,展示了如何在Web应用中构建一个交互式的树形数据展示功能。通过学习这个项目,开发者可以更好地理解JSP、Struts和xtree在实际项目中的...

    用js写的tree组件xtree1

    本文将深入探讨XTREE1的基本原理、主要功能以及如何在项目中集成和使用。 **1. 基本原理** XTREE1组件的核心是利用JavaScript的数据结构和DOM操作来构建和管理树形结构。它通过遍历数据源,动态生成HTML结构,并...

    zTree+dtree+xtree

    在DEMO中,你可以看到这些功能的实际应用,而API文档则提供了详细的使用指南和技术细节,帮助你更好地理解和使用这些插件。 总的来说,这个压缩包对于想要学习和使用前端树形插件的开发者来说,是一份非常宝贵的...

    Js xTree 树形菜单插件附用法演示.rar

    Js xTree 树形菜单插件附用法演示,本树控菜单插件是XMenu菜单作者写的另一款作品,十分实用,支持无限级树形子菜单展开、折叠,自带有说明文档,对JavaScript稍有点基础知识的朋友,可很轻松使用这款菜单插件,效果...

    用js编写的xtree117组件

    在本案例中,`xtree117`是一个使用JS编写的树形菜单组件,专用于实现无限级的层级结构展示,如产品分类或后台管理界面中的导航。 树形菜单在用户界面设计中扮演着重要角色,它能够帮助用户以直观的方式浏览和操作...

    vc写的资源管理器,包含IE的功能(转)

    综合以上信息,我们可以推测这是一个基于MFC库的VC项目,它实现了类似Windows资源管理器的界面和功能,同时也整合了网络访问和自定义右键菜单,是学习MFC编程和文件管理器实现的一个实例。通过分析这些源代码文件,...

    功能超强的treeview(可直接使用)

    `xtree.css`则是对应的样式文件,用于定义`treeview`的视觉样式,确保其在页面上美观且易于使用。 `tree.dtd`可能是一个文档类型定义文件,它定义了`HTML`或`XML`文档的结构和元素,可能与`treeview`的标记语言有关...

    JS tree菜单详解

    - **实例化树**:创建一个`&lt;div&gt;`元素并使用JavaScript代码实例化`xTree`对象: ```html ; width: 200px; top: 0px; left: 0px; height: 100%; padding: 5px; overflow: auto;"&gt; // 实例化代码示例 ``` `...

    Java项目中树形菜单的创建PPT课件.ppt

    引入xtree.js和xtree.css文件后,可以实例化树并添加节点。例如: ```html &lt;script src="xtree.js"&gt; &lt;link type="text/css" rel="stylesheet" href="xtree.css"&gt; ... if (document.getElementById) { var ...

    javascript实现的Tree

    2. **demo.v1.htm**:这是一个HTML文件,包含了XTREE2 Tree的实例化和使用。HTML文件中可能会包含JavaScript代码片段,用于初始化Tree,加载数据,以及绑定事件处理器,如点击节点时的响应。开发者可能会使用JSON或...

    将xml解析成树状结构显示

    首先,通过`DocumentBuilderFactory`创建`DocumentBuilder`实例,然后使用`parse()`方法读取XML文件并构建DOM树。树形结构可以通过`getElementsByTagName()`, `getChildNodes()`等方法进行遍历和操作。 `ButtonTest...

Global site tag (gtag.js) - Google Analytics