67,512
社区成员
发帖
与我相关
我的任务
分享
<%@ page language="java" pageEncoding="gb2312"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>动态tree</title>
<style>a{TEXT-DECORATION:none}</style>
<link rel="stylesheet" type="text/css" href="css/tree.css">
<script type="text/javascript" src="ext/ajax.js"></script>
<script type="text/javascript">
function treeAcion(nodeId,level){
//id:父节点id ; level:节点层次
var node = document.getElementById('child'+nodeId);
var varImg = document.getElementById("varImg"+nodeId);
if(node.style.display == "none"){
//向页面treeAction.jsp异步请求节点的下级节点,并将下级节点显示在id为"child"+nodeId的层里
sendRequest("treeAction.jsp?id="+nodeId+"&level="+level,"child"+nodeId);
if(node.innerHTML != ""){
//有下级时才显示
node.style.display = "" ;
//更改节点前的图片
varImg.innerHTML="<img src='images/minus.gif'/>" ;
}
}else{
node.style.display = "none" ;
//更改节点前的图片
varImg.innerHTML="<img src='images/plus.gif'/>" ;
}
return false ;
}
</script>
</head>
<body>
<div id="node0" class="treeClass"><a href="#" onclick="return treeAcion('0','0')" >根接点</a></div>
<div id="child0" style="display:none;"></div>
<script type="text/javascript">
treeAcion('0','0');
</script>
</body>
</html>
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<jsp:directive.page import="test.TreeBiz"/>
<jsp:directive.page import="test.TreeDemo;"/>
<%
try{
TreeBiz treeBiz = new TreeBiz() ;
int id = Integer.valueOf(request.getParameter("id")) ;//父节点id
int level = Integer.parseInt(request.getParameter("level")) ; //父节点层次
int curLevel = level+1 ;//计算当前节点层次
String space = "" ; //菜单前竖虚线数目
List<TreeDemo> liChild = treeBiz.getChlids(treeBiz.getTreeDemoById(id));//定义要取得的直属下级列表
for(int i= 1 ; i<curLevel ; i++){//根据级次生成竖虚线数目
space +="<td width='19' nowrap><img src='images/line.gif'></td> " ;
}
for(int i=0 ; i<liChild.size() ; i++){
TreeDemo treeNode = liChild.get(i) ;
String imgSrc = "" ;//图标名称
if(treeBiz.getChlids(treeNode).size() == 0){
//不存在下级菜单
if(i==liChild.size()-1){
//到了最后一个菜单
imgSrc = "joinbottom.gif" ;
}else{
imgSrc = "join.gif" ;
}
}else{
//存在下级菜单并且到了最后一个
if(i==liChild.size()-1){
imgSrc = "plusbottom.gif" ;
}else{
//不是最后一个存在下级菜单的
imgSrc = "plus.gif" ;
}
}
%>
<div id="node<%=treeNode.getId()%>" class="treeClass">
<table cellspacing="0" cellpadding="0" align="center" border="0" height="100%" width="100%">
<tr>
<%=space %>
<td width='19' nowrap id="varImg<%=treeNode.getId()%>"><img src="images/<%=imgSrc%>"/></td>
<td nowrap>
<a href="#" onclick="return treeAcion('<%=treeNode.getId()%>',<%=curLevel %>);"><%=treeNode.getItemName()%></a>
</td>
</tr>
</table>
</div>
<div id="child<%=treeNode.getId()%>" style="display:none;"></div><%
}
}catch(Exception e){
out.println("<font color='red'>出错了:</font>"+e.getMessage());
}
%>