动态载入树 (ASP+数据库)
2018-09-06 12:37
//********************** index.asp ************************//
<%@LANGUAGE=VBSCRIPT CODEPAGE=936%>
<%Option Explicit%>
<html>
<head>
<meta http-equiv=Content-Type content=text/html; charset=gb2312>
<title>tree</title>
<link href=css/style.css rel=stylesheet type=text/css>
<script language=JavaScript>
<!--
var d1,d2;
function expand(id)
{
var d=new Date();
d1=d.valueOf();
var s_id = eval(s + id);
var dir_id = eval(dir + id);
if(s_id.href != )
{
//window.open(s_id.href);
//or
//top.frames[FrameName].location.href = s_id.href;
}
switch(dir_id.open)
{
//改变+,-
case true:
{
with(dir_id)
{
innerText = +;
open = false;
className = dirclose;
}
if(document.getElementById(t + id))
{
eval(t+id).style.display = none;
document.getElementById(load_ + id).style.display = none;
return;
}
else
{
document.getElementById(load_ + id).style.display = none;
}
break;
}
case false:
{
with(dir_id)
{
innerText = -;
open = true;
className = diropen;
}
document.getElementById(load_ + id).style.display = ;
if(document.getElementById(t + id))
{
eval(t + id).style.display = ;
eval(load_ + id).style.display = none;
return;
}
else
{
document.frames[hifm].location.replace(subtree.asp?id= + id);
}
break;
}
}
}
function ArrToHtml(ArrNode,nodeid)
{
//输出到页面
var node_html = <table id=t + nodeid + width=100% border=0 style=position: relative; left: 18px; cellspacing=0 cellpadding=0>;
var str,opened,cls
for (var i = 0; i < ArrNode.length; i++)
{
if (ArrNode[i].iChildren == 0)
{
str = .;
opened = no;
cls = dirNode;
}
else
{
str = +;
opened = false;
cls = dirclose;
}
if (ArrNode[i].iChildren > 0)
{
node_html += <tr id=load_ + ArrNode[i].id + style=display: none><td class=td_node><table border=0 cellspacing=0 cellpadding=0 style=position: relative; left: 18; top: 0px><tr><td class=td_node><span class=dirNode>.</span><span class=load>Loading...</span></td></tr></table></td></tr>;
}
}
node_html += </table>;
if (document.getElementById(load_ + nodeid))
{
document.getElementById(load_ + nodeid).style.display = none;
document.getElementById(node + nodeid).innerHTML += node_html;
var d=new Date();
d2=d.valueOf();
message.innerHTML = 耗时:+(d2-d1)+ms;
}
}
-->
</script>
</head>
<body topmargin=0 leftmargin=0 scroll=yes>
<%
Dim conn,rs
Dim s,open,cls
On Error Resume Next
Set conn = Server.CreateObject(ADODB.Connection)
conn.Open Provider=Microsoft.Jet.OLEDB.4.0;Data Source= Server.mappath(tree/tree.mdb) ;Persist Security Info=False
Set rs = Server.CreateObject(ADODB.Recordset)
rs.Open select *,(select count(*) from deeptree where parentid = T.id) as children from deeptree T where parentid=0 order by parentid,conn,1,3
%>
<p id=message style=height: 20px align=center> </p>
<p align=center>
<center>
<table border=0 width=100% cellspacing=0 cellpadding=0 height=100% bgcolor=#F2F2F2>
<tr>
<td width=260 valign=top align=left>
<p id=treedir style=overflow: auto; width: 30%; height: 100%;>
<table border=0 cellspacing=0 cellpadding=0 style=position: relative; left: 18px; top: 20px; width=100%>
<%
Do While Not rs.EOF
If rs(children) = 0 Then
s = .
open = no
cls = dirNode
Else
s = +
open = false
cls = dirclose
End If
%>
<tr>
<td id=node<% = rs(id)%> class=td_node valign=top><span class=<% = cls %> id=dir<% = rs(id) %> onclick=expand(<%=rs(id)%>) open=<% = open %>><% = s %></span><span class=node id=s<% = rs(id) %> onclick=expand(<% = rs(id) %>) title=<% = Trim(rs(content)) %> href=<% = Trim(rs(link)) %>><% = rs(content) %></span>
</td>
</tr>
<% If rs(children) > 0 Then%>
<tr id=load_<% = rs(id) %> style=display: none>
<td class=td_node>
<table border=0 cellspacing=0 cellpadding=0 style=position:relative;left:18;top:0 width=100%>
<tr>
<td class=td_node><span class=dirNode>.</span><span class=load>Loading...</span>
</td>
&nb