目前该程序已在软件中使用,效果很好!
在这里公布了两个适用不同情况的两个版本
版权申明:
如果您要把它用于个人的学习与研究,本人欢迎!但如果用于商业用途,请与本人联系
taojianbo@263.net
------------------------------
<%@ language=vbscript %>
<html>
<head>
<meta name="generator" content="microsoft visual studio 6.0">
<script language=javascript>
<!--// --------------------------client code start-------------------------------
/*
'''''''''''''''''''''''
'功能:树形结构的显示(树形菜单)
'说明:该程序容易理解,算法清晰,您只需使用,无需做什么修改就可以适用于各种环境
'使用中如遇问题,请与我联系
'version 1.0
'作者:陶建波 taojianbo@263.net
'2001.9.15
'**new**2001.10.10陶建波
'性能评测:
' 以本程序所提供的算法,对处理少量的数据来说,是一种简单快捷的方法,但是如果是大量的数据呢
'比如:菘獾募锹即锏?k(千),1m(百万)会如何呢?如果是用来人口统计呢?
'假设树的平均层次为layer,记录数为n,则计算:
'文件大小:length=2000(附加的固定大小部分)+(layer*130+280+$)*n
' $的大小有layer,n与实际情况决定,但一般大于100
'最后计算length,文件的大小可能是nk
'由此看来,该算法不适用与大的数据量的情况,请用户考虑好
'为了改变这种不利情况,最新的算法版本请见powertree.asp,该程序将在目前功能的基础上着重考虑性能问题
''''''''''''''''''''''''
*/
function showhide(objspan)
{
//显示,隐藏区域,达到菜单显示的目的
var temp;
eval("temp=ospan"+objspan+".style.display");
if(temp=="none")
{
eval("ospan"+objspan+".style.display='block'");
eval("oimg"+objspan+".src="/files/bpic/2006-5/28/0652821442126265.bmp"");
}
}//end function
//-----------------------------client code end--------------------------
//-->
</script>
<style type="text/css">
<!--
a:link { font-size: 14px; text-decoration: none; color: #0000ff}
a:visited { font-size: 14px; color: #0000ff; text-decoration: none}
a:hover { font-size: 14px; color: #ff0000; background-color: #cccc99; text-decoration: none}
a:active { font-size: 14px; color: #ffffff; background-color: #191970; text-decoration: none}
.item{ font-size:14px}
-->
</style>
</head>
<body leftmargin=0 rightmargin=0>
<table>
<tr><td valign=top>
<%
''''''''''''''''server code start''''''''''''''''
dim layer,seqer,rowcount,colcount '全局变量定义
layer=0 ''树的层次计数器,初始化为0
seqer=0 ''顺序号计数器,初始化为0
rowcount=0 ''树组的第一维数
colcount=0 ''树组的第二维数
function listchild(id)
'参数:树的根结点id
'可变部分:
'erect.bmp,blank.bmp,link.bmp,line.bmp,open.bmp,close.bmp 各图片的
'说明:在本程序中作了这样的假设,你的树在数据库存储的方法为 tree{row_id,nodename,par_id,...}
'不要在未看清楚之前修改任何一条语句
'在代码中,在editable start 与editable end 之间的未可修改内容
'
'
dim parid,i,blnchild,lastobji
dim lastseqer
lastobji="" '本级的最后一个对象i值,初始化为空
parid=id '
i=0 '基数0
blnchild=false '该节点是否有子节点,初始化为false
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器