关于动态创建树的问题 xloadtree,网上搜一下,好多介绍 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 csdn中曾经问过。我把我作的思路说一下:1。建立相关的数据库,包含:类别ID,类别名称,上级类别ID,其他还可以有对应的链接文件等;2。编写访问数据库的Javabean,将数据库信息取出;3。在JSP中,将类别信息存放在一个数组中,之后要转存为Javascript的数组;4。编写Javascript的代码,功能如下:传入menu数组,然后首先搜索第一级目录,然后在搜索第二级目录,逐级将目录写出,其中使用层来控制子目录的隐藏。这样就可以在开始显示一级目录,之后逐级显示。这个我都实现了,代码现在找不着了。:)希望对你有帮助,有什么问题,也可以给我email. Javascript的函数我有:/** *显示隐藏层 * */function showhide(layername){ var layer; layer = document.all(layername); if(layer.style.display == "none") layer.style.display = ""; else layer.style.display = "none";}/** * 根据传入数组的信息,显示树型目录结构 * 传入参数:id父目录的代码,menu菜单信息的数组,imgname图标的文件位置 * 包括目录id,父目录序号fparentid,目录名称fname,连接文件名ffilename. */function treemenu(id,menu,imgname){ var i; //计数器 var fid; //当前目录的父目录代码 var curid; //当前目录代码 var menuname; //目录名称 var filename; //目录连接文件名 var menulength; //目录数组的长度 var sublayer; //子层的名称 var curlayer; //当前层的名称 var stemp; //临时变量 curlayer = "menu" + id; menulength = menu.length; if(id == "0") { document.write("<span style='display:' id='" + curlayer + "'>"); document.write("<table border='0' width='100%'>"); } else { document.write("<span style='display:none' id='" + curlayer + "'>"); document.write("<table border='0'>"); } for(i=1;i<menulength;i++) { //查找子目录,并显示 fid = menu[i][2]; if(fid == id) { document.write("<tr>"); document.write("<td width='1'></td>"); document.write("<td>"); curid = menu[i][1]; menuname = menu[i][3]; lname = "menu" + curid; document.write("<div style='cursor:hand' onclick=\"javascript:showhide('" + lname + "');\">"); document.write("<img src='"+imgname+"'>"); document.write(" "); temp = menu[i][4]; if(temp != null && temp.length != "") { document.write("<a href ='" + temp + "' target='" + menu[i][5] + "'>"); document.write(menuname); document.write("</a>"); } else { document.write(menuname); } document.write("</div>"); //递归调用显示子目录 treemenu(curid,menu,imgname); document.write("</td></tr>"); } } document.write("</table>"); document.write("</span>");} 楼上的方法不错,但有一个问题就是如果数据量很大的话用javascript打印出来的话就变得很慢了,但如果改用xml配合javascript的话效果就更好了,因为这样在每第一次打开一棵子树的时候只在数据库取新打开的那一层,这样子就可以更动态的更快的读出一棵树. 十分感谢各位朋友的支持 !!!!!!!!!!chengkeke 您好: 我现在实现的方法就是您说的这种方法,但我们用的数据库用来生成树的数据量很大,会遇到 superfishmanweb 这位朋友所说的问题,我现在就是想改进这种方法,能否再给出个主意,谢谢!superfishmanweb 您好: 按您说的这种方法能否给个具体的实现方法,能给段代码最好不过了,因为我是刚学web开发,对好多东西我还不太了解,在这儿先谢谢了! 建议楼主用javascript+xml的方法,第一次只加载第一级,第二级的时候在服务器端生成xml格式的数据,然后在客户端用脚本通过xmlhttp或者dom将数据load进来并且解析,生成节点,你可以研究研究这个http://fason.nease.net/samples/xtree/ 问题已解决,用jsp自己写的,谢谢各位的参与 HTML+vml生成报表 发到邮箱里的验证码超时是怎么实现的 求助,这段代码中的alert不运行怎么回事?在手机浏览器上做的测试 Hibernate怎样使用update 我用struts开发,现在想用链接来提交表单,应该怎么实现? js中将字符串转换为长整型 ResultSet getResult问题 请高手回答一个问题 谢谢了 JSP中怎么判断输入的不是数字!在线 tomcat中不能执行servlet??? 提个弱一点的问题,请各位不要见笑? Tomcat5.0不能运行的网页,打包成.war后发布到weblogic运行正常。。。问题所在?
我把我作的思路说一下:
1。建立相关的数据库,包含:类别ID,类别名称,上级类别ID,其他还可以有对应的链接文件等;
2。编写访问数据库的Javabean,将数据库信息取出;
3。在JSP中,将类别信息存放在一个数组中,之后要转存为Javascript的数组;
4。编写Javascript的代码,功能如下:
传入menu数组,然后首先搜索第一级目录,然后在搜索第二级目录,逐级将目录写出,其中使用层来控制子目录的隐藏。这样就可以在开始显示一级目录,之后逐级显示。这个我都实现了,代码现在找不着了。:)
希望对你有帮助,有什么问题,也可以给我email.
/**
*显示隐藏层
*
*/
function showhide(layername)
{
var layer;
layer = document.all(layername);
if(layer.style.display == "none")
layer.style.display = "";
else
layer.style.display = "none";
}/**
* 根据传入数组的信息,显示树型目录结构
* 传入参数:id父目录的代码,menu菜单信息的数组,imgname图标的文件位置
* 包括目录id,父目录序号fparentid,目录名称fname,连接文件名ffilename.
*/function treemenu(id,menu,imgname)
{
var i; //计数器 var fid; //当前目录的父目录代码
var curid; //当前目录代码
var menuname; //目录名称
var filename; //目录连接文件名
var menulength; //目录数组的长度 var sublayer; //子层的名称
var curlayer; //当前层的名称
var stemp; //临时变量 curlayer = "menu" + id; menulength = menu.length;
if(id == "0")
{
document.write("<span style='display:' id='" + curlayer + "'>");
document.write("<table border='0' width='100%'>");
}
else
{
document.write("<span style='display:none' id='" + curlayer + "'>");
document.write("<table border='0'>");
} for(i=1;i<menulength;i++)
{
//查找子目录,并显示
fid = menu[i][2];
if(fid == id)
{
document.write("<tr>");
document.write("<td width='1'></td>");
document.write("<td>");
curid = menu[i][1];
menuname = menu[i][3];
lname = "menu" + curid;
document.write("<div style='cursor:hand' onclick=\"javascript:showhide('" + lname + "');\">");
document.write("<img src='"+imgname+"'>");
document.write(" ");
temp = menu[i][4];
if(temp != null && temp.length != "")
{
document.write("<a href ='" + temp + "' target='" + menu[i][5] + "'>");
document.write(menuname);
document.write("</a>");
}
else
{
document.write(menuname);
}
document.write("</div>");
//递归调用显示子目录
treemenu(curid,menu,imgname);
document.write("</td></tr>");
}
}
document.write("</table>");
document.write("</span>");
}
十分感谢各位朋友的支持 !!!!!!!!!!chengkeke 您好:
我现在实现的方法就是您说的这种方法,但我们用的数据库用来生成树的数据量很大,会遇到 superfishmanweb 这位朋友所说的问题,我现在就是想改进这种方法,能否再给出个主意,谢谢!superfishmanweb 您好:
按您说的这种方法能否给个具体的实现方法,能给段代码最好不过了,因为我是刚学web开发,对好多东西我还不太了解,在这儿先谢谢了!
http://fason.nease.net/samples/xtree/