从阿赖大虾那里抄来的,无限层次的树形菜单。www.9499.net很好的站点。感谢阿赖。

风斧 2004-10-05 05:13:30
如果需要数据库和js文件可到阿赖网站下载。如果要正确运行“我的“代码,请创建odbc数据源“mymenu”连接tree数据库。
以下为html文件。我做的紧紧是把asp改称jsp.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>阿赖目录树控件应用示例--动态加载树前台页面</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<script src="alai_tree.js" language="JavaScript"></script>
</head>
<body>
<script language="JavaScript">
var images=new alai_imagelist()
images.path="images/"
images.add("folderclose","folder")
images.add("hfile","file")
images.add("face")
images.add("angry")
images.add("plus_m","expand")
images.add("plus_top","expand_top")
images.add("plus_end","expand_end")
images.add("minus_m","collapse")
images.add("minus_top","collapse_top")
images.add("minus_end","collapse_end")
images.add("branch","leaf")
images.add("branch_end","twig")
images.add("vline","line")
images.add("blank")
var tree=new alai_tree(images,0)

tree.onexpand=function(srcNode)
{
if(srcNode.first.label.innerText=="loading...")
{
//动态加载子节点的代码:
ifrLoad.location="tree_load.jsp?id="+srcNode.getKey().replace("n","");
}
return true;
}
</script>
<iframe id="ifrLoad" style="width:0;height:0" src="tree_load.jsp?id=-1"></iframe>

<hr>
<p align="center">copywrite by 赖国欣 2003/7 All right reserved</p>
<p align="center">Email: <a href="mailto:a@lai.com.cn">a@lai.com.cn</a> website:
<a href="http://www.9499.net">http://www.9499.net</a></p>
</body>
</html>
...全文
237 点赞 收藏 7
写回复
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
风斧 2004-10-06
www.9949.net
正文里有的,
我的html改编自(实际上没改)tree_exam6.htm
tree_load.jsp改编自:tree_load.asp
主页上有打包下载,还有一些使用说明,各种各样的菜单,好像都是开源的。
感谢阿赖。
回复
zerogotosum 2004-10-06
想学好JAVA,
请加入我的JAVA群
初学者的好地方
一起学习JAVA,
一起进步!!!6276733
回复
ziying 2004-10-06
看下
回复
debug158 2004-10-06
给个连接好不好?老大?
回复
风斧 2004-10-05
只有一张表,去阿莱那里看吧,很简单的结构
回复
ricky921 2004-10-05
先谢了~~

请问一下tree数据库里面就一张表tree吗?还有没有其他的表
这些表的结构是怎样的??有哪些字段?
回复
风斧 2004-10-05
以下为tree_load.jsp文件的内容。

<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*,java.util.*,java.io.*" %>
<html>
<head>
<title>目录树加载程序</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>

<body>
<%
String rschildNum=null;
String rsid=null;
String rsparentid=null;
String rstext=null;
String rsexeCategory=null;
String rsexeArgv=null;
String rsicon=null;
String icon=null;
int iChildNum;

Connection con=null;
Statement stmt=null;
ResultSet rs=null;
String nodeId=null;

String parentid=request.getParameter("id");
String server_path=application.getRealPath("/");
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con = DriverManager.getConnection("jdbc:odbc:mymenu","","");
stmt=con.createStatement();

String sqlstr="select * , (select count(*) from tree where parentid=subTree.id) as childNum from tree subTree where parentid="+parentid;
rs=stmt.executeQuery(sqlstr);

out.println(" <script>");
out.println(" var tree=self.parent.tree;");
//得到传过来的节点,作为父节点。

if("-1".equals(parentid))
out.println("var toNode=tree.root;");
else
out.println("var toNode=tree.nodes['n" + parentid + "'];");

while (rs.next())
{
rschildNum=rs.getString("childNum");
rsid=rs.getString("id");
rsparentid=rs.getString("parentid");
rstext=rs.getString("text");
rsexeCategory=rs.getString("exeCategory");
rsexeArgv=rs.getString("exeArgv");
rsicon=rs.getString("icon");
nodeId="n"+rsid;
iChildNum=Integer.parseInt(rschildNum);

if(rsicon!=null)
{
icon=rsicon;
}
else
{
icon="folder";
}
out.println("var nNode=tree.add(toNode,'last','" + server_path+rstext + "','" + "n" + rsid + "','" + icon + "','" + rsexeCategory + "','" + rsexeArgv + "');");
out.println("if(nNode.parent.first.label.innerText=='loading...')nNode.parent.first.remove();");
if (iChildNum>0)
out.println( "nNode.add('loading...');nNode.expand(false);");

}
out.println(" </script>");


%>

</body>
</html>
回复
发动态
发帖子
Web 开发
创建于2007-09-28

7.9w+

社区成员

Java Web 开发
申请成为版主
社区公告
暂无公告