求asp树形源码

只要两级就行了,asp的,要连接数据库,我有两个表,一个存放产品的分类,一个存放产品的信息。如何实现产品分类为根点的asp树形结构!

字号:大 中 小

<html>
<head>

<title>导航树</title>
<link rel="stylesheet" type="text/css" href="css/css.css">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<script language = javascript>
var t=new Array();
var a=0;

t[a++]=new tree(0,0,"关于公司","starpage.htm") <!--#代表的是地址-->
t[a++]=new tree(10,0,"公司介绍","#")
t[a++]=new tree(20,0,"联系方式 ","#")
t[a++]=new tree(1,1,"产品及服务 ","starpage.htm")
t[a++]=new tree(40,1,"IT产品 ","#")
t[a++]=new tree(50,1,"通讯产品 ","#")

//数据库end----

function init(){//初始化

document.getElementById("loading").removeNode(true)
var s=""
var str="<table border='0' cellspacing='0' cellpadding='0' style='position:relative;left:18;top:20'>"
for(i=0;i<t.length;i++){
//alert(t[i].id);
if(t[i].id==t[i].parentid){
if(countNode(t[i].id)==0){s=".";cls="dirNode"}
else {s="+";cls="dirclose"}
str+="<tr><td id='"+t[i].id+"' class='td_node'><span class='"+cls+"' id='dir"+t[i].id+"' onclick='expand("+t[i].id+")'>"+s+"</span><span class='node' id='s"+t[i].id+"' onclick='expand("+t[i].id+")' title='"+t[i].content+"'>"+t[i].content+"</span></td></tr>";
if(s=="+")str+="<tr id='load_"+t[i].id+"' style='display:none'><td class='td_node'><table border='0' cellspacing='0' cellpadding='0' style='position:relative;left:18;top:0'><tr><td class='td_node'><span class='dirNode'>.</span><span class='load'>Loading...</span></td></tr></table></td></tr>"

}
}
document.getElementById('treedir').innerHTML=str+"</table>"

}

function tree(id,parentid,content,href){
this.id=id;
this.parentid=parentid;
this.content=content;
this.href=href;
//this.Window.location = href;
}

function countNode(id){
var n=0;
for(j=0;j<t.length;j++){
if(t[j].parentid==id&&t[j].id!=t[j].parentid)n++
}
return n;
}

function getLight(id){
var s=document.getElementsByTagName("SPAN")
var sn=document.getElementById("s"+id)
for(i=0;i<s.length;i++)if(s[i].className=='node')s[i].style.cssText="color:#000000;"
sn.style.cssText="color:#000000;background-color:#ffffff;border:1 solid #999999"
}

function expand(id){
var n=0;
var r=0;
var s=""
var lod="Loading..."
getLight(id);
for(i in t)if(t[i].id==id)r=i;//将当前结点转为数组的游标

window.status=t[r].content;
if (t[r].href != "starpage.htm")
top.window.frames['rightFrame'].location.href=t[r].href;

switch(eval("dir"+id).innerText){
case "-":
eval("dir"+id).innerText="+";eval("dir"+id).className='dirclose';break;
case "+":
eval("dir"+id).innerText="-";eval("dir"+id).className='diropen';break;
default:eval("dir"+id).innerText=".";eval("dir"+id).className='dirNode';
}
if(eval("dir"+id).innerText==".")return;
if(eval("dir"+id).innerText=="+"){eval("t"+id).removeNode(true);return}
document.getElementById("load_"+id).style.display='none'
var html="<table id='t"+id+"' border='0' style='display:none;position:relative;left:18' cellspacing='0' cellpadding='0'>"
for(i in t){
if(t[i].parentid==t[r].id&&t[i].parentid!=t[i].id){
if(countNode(t[i].id)==0){s=".";cls="dirNode"}
else {s="+";cls="dirclose"}
html+="<tr><td id='"+t[i].id+"' class='td_node'><span class='"+cls+"' id='dir"+t[i].id+"' onclick='expand("+t[i].id+")'>"+s+"</span><span class='node' id='s"+t[i].id+"' onclick='expand("+t[i].id+")' title='"+t[i].content+"'>"+t[i].content+"</span></td></tr>";
if(s=="+")html+="<tr id='load_"+t[i].id+"' style='display:none'><td class='td_node'><table border='0' cellspacing='0' cellpadding='0' style='position:relative;left:18;top:0'><tr><td class='td_node'><span class='dirNode'>.</span><span class='load'>Loading...</span></td></tr></table></td></tr>"}
}
html+="</table>"
document.getElementById(id).innerHTML+=html;
while(eval('t'+id).readyState=='loading'){eval('t'+id).style.display='none'}
eval("load_"+id).style.display='none'
eval("t"+id).style.display=''
}
</script>

</head>

<body class=bodycss text="#000000" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" onload="init()" bgcolor="#EAEAEA">
<div id=treedir style="width:100%;height:50%">
<table border='0' align="left" cellpadding='0' cellspacing='0' id="loading" >
<tr>

<td class='td_node'><span class='dirNode'>.</span><span class='load'>正在装载...</span>
<div align="left"></div></td>
</tr>
</table>

</div>

</body>
</html>

--------------------------------------------------------

asp树状目录代码一
<link href=style.css rel=stylesheet>
<%
function HTMLEncode(fString)
fString=replace(fString,";",";")
fString=replace(fString,"<","<")
fString=replace(fString,">",">")
fString=replace(fString,"\","\")
fString=replace(fString,"--","--")
fString=replace(fString,"'","'")
fString=replace(fString,CHR(34),""")
fString=replace(fString,vbCrlf,"<br>")
HTMLEncode=fString
end function
'-------------------分类目录下拉选择菜单SortList(selec)----------------------
sub SortList(selec)
sql="Select * From ClassTree where followid="&selec&" and SortName='"+asd+"' order by SortNum"
Set Rs1=Conn.Execute(sql)
do while not rs1.eof
Response.write "<option value="&rs1("ID")&">"&string(ii," ")&""&rs1("ClassName")&"</option>"
ii=ii+1
SortList rs1("id")
ii=ii-1
rs1.movenext
loop
Set Rs1 = Nothing
end sub
sub error2(message)
%><script>alert('<%=message%>');history.back();</script><script>window.close();</script><%
end sub
'-----------分类目录列表Sort(selec)---------
dim ii
ii=0
sub sort(selec)
sql="Select * From ClassTree where followid="&selec&" and SortName='"+asd+"' order by SortNum"
Set Rs1=Conn.Execute(sql)

do while not rs1.eof
if selec=0 then
%>
<tr class=a1 id=TableTitleLink height=25>
<td> <a target=_blank href=ShowProduct.asp?id=<%=rs1("id")%>><%=rs1("ClassName")%></a></td>
<td align="right" width="190">
<a href=?menu=SortAdd&zdxl=<%=asd%>&id=<%=rs1("id")%>>添加编制</a> | <a href=?menu=SortEdit&zdxl=<%=asd%>&id=<%=rs1("id")%>>修改编制</a> |
<a onclick=checkclick('您确定要删除该编制的所有资料?') href=?menu=SortDel&zdxl=<%=asd%>&id=<%=rs1("id")%>>删除编制</a>
</tr>
<%
else
%>
<tr class=a3 height=25>
<td> <%=string(ii*2," ")%><a target=_blank href=ShowProduct.asp?id=<%=rs1("id")%>><%=rs1("ClassName")%></a></td>
<td align="right">
<a href=?menu=SortAdd&zdxl=<%=asd%>&id=<%=rs1("id")%>>添加编制</a> | <a href=?menu=SortEdit&zdxl=<%=asd%>&id=<%=rs1("id")%>>修改编制</a> |
<a onclick=checkclick('您确定要删除该编制的所有资料?') href=?menu=SortDel&zdxl=<%=asd%>&id=<%=rs1("id")%>>删除编制</a>
</tr>
<%
end if
ii=ii+1
sort rs1("id")
ii=ii-1
rs1.movenext
loop
Set Rs1 = Nothing
end sub
%>

-------------------------------------------------------------
温馨提示:答案为网友推荐,仅供参考