First ,you shoule download the opensource xtree.js for this function.
/* * WebFXTreeItem class */ function WebFXTreeItem(sText, sAction, eParent, sIcon, sOpenIcon) { this.base = WebFXTreeAbstractNode; this.base(sText, sAction); /* Defaults to close */ if (webFXTreeConfig.usePersistence) { this.open = (webFXTreeHandler.cookies.getCookie(this.id.substr(18,this.id.length - 18)) == '1')?true:false; } else { this.open = false; } if (sIcon) { this.icon = sIcon; } if (sOpenIcon) { this.openIcon = sOpenIcon; } if (eParent) { eParent.add(this); } }
this is the main function of it. so we can create a WebFXTreeItem according to this js file.
as we prepared the source.next we should prepare some material for compose the tree. Here I use the cith shenzhen for instance.
Shenzhen have two parts: city-inside,city-outside.so their parent is Shenzhen city, and city-inside have four areas,city-outside have two area.all the areas have its singnal area number,a parent number which is very important here.
here is my implement jsp :
<%@page contentType="text/html; charset=GBK"%>
<%@ page language="java" import="java.lang.*,java.util.*"%>
<script type="text/javascript" src="js/xtree.js"></script>
<% List list =(List) request.getAttribute("treeList");
int size = list.size();
%>
<script type="text/javascript">
function pa_location(frame,locate){
parent.frames[frame].location=locate;
}
</script>
<script type="text/javascript">
var tree = new WebFXTree('管理系统');
tree.setBehavior('classic');
var a = new Array;
var pidArray = new Array;
var numArray = new Array;
<%
for(int i=0;i<size;i++)
{
Map map = (Map)list.get(i);
%>
pidArray[<%=i%>]= <%=map.get("PID").toString()%>;
<%
}
for(int i=0;i<size;i++)
{
Map map = (Map)list.get(i);
%>
numArray[<%=i%>]= <%=map.get("AREANUM").toString()%>;
<%
}
for(int i=0;i<size;i++){
Map map = (Map)list.get(i);
%>
if(pidArray[<%=i%>]=='0')
{
a[<%=i%>]= new WebFXTreeItem('<%=map.get("AREANAME")%>');
tree.add(a[<%=i%>]);
a[<%=i%>].action = "javascript:pa_location('mainForm','tree.do?method=showTree&areaNum=<%=map.get("AREANUM")%>')";
}
<%
for(int j=0;j<size;j++)
{
Map jMap = (Map)list.get(j);
%>
if(pidArray[<%=j%>]==numArray[<%=i%>]){
a[<%=j%>]= new WebFXTreeItem('<%=jMap.get("AREANAME")%>');
a[<%=j%>].action = "javascript:pa_location('mainForm','tree.do?method=showTree&areaNum=<%=jMap.get("AREANUM")%>')";
a[<%=i%>].add(a[<%=j%>]);
}
<%
}
}
%>
</script>
<html>
<head>
<link rel="StyleSheet" href="css/xtree.css" type="text/css">
</head>
<body>
<table width="100%">
<tr><td>
<script type="text/javascript">document.write(tree);</script>
</td></tr>
</table>
</body></html>
then the tree is finished,and you also can give some link for every element. for detailed, you can see the function of javascript pa_location(), that is all