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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值