动态载入树 (ASP+数据库)
生活随笔
收集整理的這篇文章主要介紹了
动态载入树 (ASP+数据库)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
ASP+ACCESS 在數(shù)據(jù)量達(dá)100萬條記錄下,載入速度仍然驚人....
// 網(wǎng)上轉(zhuǎn)載. 忘了作者...? : )
//**********************? Index.asp ************************//
??2<%Option?Explicit%>
??3<html>
??4<head>
??5<meta?http-equiv="Content-Type"?content="text/html;?charset=gb2312">
??6<title>tree</title>
??7<link?href="css/style.css"?rel="stylesheet"?type="text/css">
??8<script?language="JavaScript">
??9<!--
?10var?d1,d2;
?11
?12function?expand(id)
?13{
?14?var?d=new?Date();
?15?d1=d.valueOf();
?16
?17?var?s_id?=?eval("s"?+?id);
?18?var?dir_id?=?eval("dir"?+?id);
?19?if(s_id.href?!=?'')
?20?{
?21??//window.open(s_id.href);
?22??//or
?23??//top.frames['FrameName'].location.href?=?s_id.href;
?24?}
?25
?26?switch(dir_id.open)
?27?{
?28??//改變"+","-"
?29??case?"true":
?30??{
?31???with(dir_id)
?32???{
?33????innerText?=?"+";
?34????open?=?"false";
?35????className?=?'dirclose';
?36???}
?37???if(document.getElementById("t"?+?id))
?38???{
?39????eval("t"+id).style.display?=?'none';
?40????document.getElementById("load_"?+?id).style.display?=?'none';
?41????return;
?42???}
?43???else
?44???{
?45????document.getElementById("load_"?+?id).style.display?=?'none';
?46???}
?47???break;
?48??}
?49??case?"false":
?50??{
?51???with(dir_id)
?52???{
?53????innerText?=?"-";
?54????open?=?"true";
?55????className?=?'diropen';
?56???}
?57???
?58???document.getElementById("load_"?+?id).style.display?=?'';
?59???
?60???if(document.getElementById("t"?+?id))
?61???{
?62????eval("t"?+?id).style.display?=?'';
?63????eval("load_"?+?id).style.display?=?'none';
?64????return;
?65???}
?66??????else?
?67???{
?68????document.frames['hifm'].location.replace("subtree.asp?id="?+?id);
?69???}
?70??????break;
?71??}
?72??default:dir_id.innerText?=?".";?dir_id.className?=?'dirNode';?return;
?73?}
?74
?75}
?76
?77function?ArrToHtml(ArrNode,nodeid)
?78{
?79?//輸出到頁面
?80?var?node_html?=?'<table?id="t'?+?nodeid?+?'"?width="100%"?border="0"?style="position:?relative;?left:?18px;"?cellspacing="0"?cellpadding="0">';
?81
?82?var?str,opened,cls
?83?for?(var?i?=?0;?i?<?ArrNode.length;?i++)
?84?{
?85??if?(ArrNode[i].iChildren?==?0)
?86??{
?87???str?=?'.';
?88???opened?=?'no';
?89???cls?=?'dirNode';
?90??}
?91??else
?92??{
?93???str?=?'+';
?94???opened?=?'false';
?95???cls?=?'dirclose';
?96??}
?97
?98??node_html?+=?'<tr><td?id="node'?+?ArrNode[i].id?+?'"?class="td_node"?valign="top"><span?class="'?+?cls?+?'"?id="dir'?+?ArrNode[i].id?+?'"?οnclick="expand('?+?ArrNode[i].id?+?')"?open="'?+?opened?+?'">'?+?str?+?'</span><span?class="node"?id="s'?+?ArrNode[i].id?+?'"?οnclick="expand('?+?ArrNode[i].id?+?')"?title="'?+?ArrNode[i].Content?+?'"?href="'?+?ArrNode[i].strLink?+?'">'?+?ArrNode[i].Content?+?'</span></td></tr>';
?99
100??if?(ArrNode[i].iChildren?>?0)
101??{
102???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>';
103??}
104?}
105
106?node_html?+=?'</table>';
107?if?(document.getElementById("load_"?+?nodeid))
108?{
109??document.getElementById("load_"?+?nodeid).style.display?=?"none";
110??document.getElementById("node"?+?nodeid).innerHTML?+=?node_html;
111??var?d=new?Date();
112??d2=d.valueOf();
113??message.innerHTML?=?"耗時:"+(d2-d1)+"ms";
114?}
115}
116-->
117</script>
118</head>
119
120<body?topmargin="0"?leftmargin="0"?scroll="yes">
121<%
122Dim?conn,rs
123Dim?s,open,cls
124On?Error?Resume?Next
125Set?conn?=?Server.CreateObject("ADODB.Connection")
126conn.Open?"Provider=Microsoft.Jet.OLEDB.4.0;Data?Source="?&?Server.mappath("Tree.mdb")?&?";Persist?Security?Info=False"
127Set?rs?=?Server.CreateObject("ADODB.Recordset")
128
129rs.Open?"select?*,(select?count(*)?from?deeptree?where?parentid?=?T.id)?as?children?from?deeptree?T?where?parentid=0?order?by?parentid",conn,1,3
130%>
131<div?id="message"?style="height:?20px"?align="center">???</div>
132<div?align="center">
133??<center>
134????<table?border="0"?width="100%"?cellspacing="0"?cellpadding="0"?height="100%"?bgcolor="#F2F2F2">
135??????<tr>
136????????<td?width="260"?valign="top"?align="left">
137??????????<div?id="treedir"?style="overflow:?auto;?width:?30%;?height:?100%;">
138?????????<table?border="0"?cellspacing="0"?cellpadding="0"?style="position:?relative;?left:?18px;?top:?20px;"?width="100%">
139???<%
140???Do?While?Not?rs.EOF
141????If?rs("children")?=?0?Then
142?????s?=?"."
143?????open?=?"no"
144?????cls?=?"dirNode"
145????Else?
146?????s?=?"+"
147?????open?=?"false"
148?????cls?=?"dirclose"
149????End?If
150???%>
151?????????<tr>
152?????<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>
153?????</td>
154???</tr>
155???<%?If?rs("children")?>?0?Then%>
156?????????<tr?id="load_<%?=?rs("id")?%>"?style="display:?none">
157???????????<td?class="td_node">
158?????????????<table?border="0"?cellspacing="0"?cellpadding="0"?style="position:relative;left:18;top:0"?width="100%">
159????????????<tr>
160??????????????<td?class="td_node"><span?class="dirNode">.</span><span?class="load">Loading</span>
161????????????????????</td>
162??????????????????</tr>
163????????????????</table>
164??????????????</td>
165????????????</tr>
166???<%End?If%>
167???<%
168????rs.MoveNext
169???Loop
170???%>
171??????????</table>
172????????</div>
173??????</td>
174????</table>
175??</center>
176</div>
177<%
178Set?rs?=?Nothing
179Set?conn?=?Nothing
180%>
181<iframe?id='hifm'?width=0?height=0?style="display:?none"?height="100%"?width="100%"></iframe>
182</body>
183</html>
///****************** SubTree.asp *********************//
?1<%Option?Explicit%>
?2<script?language="JavaScript">
?3function?NodeClass(id,Content,strLink,iChildren)
?4{
?5?//this.id=parseInt(id);
?6?this.id=id;
?7????this.Content=Content;
?8?this.strLink=strLink;
?9?this.iChildren=iChildren;
10????//this.iChildren=parseInt(iChildren);
11}
12
13var?ArrNode?=?new?Array();
14<%
15Dim?conn,rs,s,cls,href,Open
16Dim?nodeid,i
17nodeid?=?Request.QueryString("id")
18'On?Error?Resume?Next
19Set?conn?=?Server.CreateObject("ADODB.Connection")
20conn.Open?"Provider=Microsoft.Jet.OLEDB.4.0;Data?Source="?&?Server.mappath("tree.mdb")?&?";Persist?Security?Info=False"
21Set?rs?=?Server.CreateObject("ADODB.Recordset")
22rs.Open?"select?*,(select?count(*)?from?deeptree?where?parentid?=?T.id)?as?children?from?deeptree?T?where?parentid="?&?nodeid?&?"",conn,1,3
23i=0
24Do?While?Not?rs.EOF
25?%>
26?ArrNode[<%=i%>]?=?new?NodeClass(<%=rs("id")%>,'<%=trim(rs("content"))%>','<%=trim(rs("link"))%>',<%=rs("children")%>);
27?<%
28
29?i=i+1
30?rs.MoveNext
31Loop
32
33Set?rs?=?Nothing
34%>
35parent.ArrToHtml(ArrNode,'<%?=?nodeid?%>');
36-->
37</script>
38<%
39Set?conn?=?Nothing
40%>
//********************* Node.htc *********************//
?1<PUBLIC:COMPONENT>
?2<PUBLIC:ATTACH?EVENT="onmouseover"?ONEVENT="fos()"/>
?3<PUBLIC:ATTACH?EVENT="onmouseout"?ONEVENT="blu()"/>
?4<PUBLIC:ATTACH?EVENT="onselectstart"?ONEVENT="st()"/>
?5<SCRIPT>
?6function?fos(){}{
?7if(style.backgroundColor!='#ffffff'){
?8style.color="#000000"
?9style.border="1?solid?#888888"
10style.backgroundColor='#DDDDDD'
11}
12else
13{}{style.color="#000000"
14style.border="1?solid?#999999"
15style.backgroundColor='#ffffff'
16}
17}
18
19function?blu(){}{
20if(style.backgroundColor!='#ffffff'){
21style.color="#000000"
22style.border="1?solid?#f2f2f2"
23style.backgroundColor='#f2f2f2'
24}
25else
26{}{style.color="#000000"
27style.border="1?solid?#999999"
28style.backgroundColor='#ffffff'
29}
30}
31
32function?st(){}{
33return?false;
34}
35</SCRIPT>
36</PUBLIC:COMPONENT>
//***************************? Style.css ****************//
?1body{}{font-size:12px}
?2#txt{}{font-size:?12px;?color:?#000000;??font-family:?Courier?New;border:1?solid?#3366cc}
?3#hrf{}{font-size:?12px;?color:?#000000;??font-family:?Courier?New;border:1?solid?#3366cc}
?4#sb{}{font-size:?12px;?color:?#000000;??font-family:?Courier?New;background-color:#d2e8ff;border:1?solid?#3366cc;cursor:hand}
?5.node{}{position:relative;left:2;height:20;padding:3?3?1?3;font-size:12px;font-family:?Courier?New;cursor:hand;border:1?solid?#f2f2f2;behavior:url(css/node.htc)}
?6.load{}{position:relative;left:2;height:20;padding:1?3?1?3;font-size:12px;font-family:?Courier?New;cursor:hand;border:1?solid?#999999;background-color:#f2f2f2;color:#999999}
?7.td_node{}{height:22px}
?8#treedir{}{
?9}
10span.diropen
11{}{?padding-left:2px;
12?overflow:hidden;
13?line-height:3px;
14?font-size:12px;
15?padding-top:5px;
16?width:11px;
17?height:11px;
18?border:solid?1px?black;
19?background-color:#ffffff;
20?cursor:hand;
21}
22span.dirclose
23{}{
24?line-height:6px;
25?font-size:9px;
26?overflow:hidden;
27?padding:2px;
28?width:11px;
29?height:11px;
30?border:solid?1px?black;
31?background-color:#ffffff;
32?cursor:hand;
33}
34.dirNode
35{}{
36?font-weight:bold
37?overflow:visible;
38?font-size:9px;
39?line-height:3px;
40?padding:?1px?1px?0px?3px;
41?width:11px;
42?height:11px;
43?border:solid?1px?black;
44?background-color:#ffffff;
45?cursor:hand;
46}
// 把 Node.htc, Style.css 保存在 CSS 目錄下. Index.asp,SubTree.asp 放與根目錄.
另新建一ACCESS數(shù)據(jù)庫 Tree.mdb
表DeepTree 結(jié)構(gòu)為 ID(自動編號),Content(文本), ParentID(數(shù)字),Link(文本)
轉(zhuǎn)載于:https://www.cnblogs.com/Dicky/archive/2005/05/12/154062.html
總結(jié)
以上是生活随笔為你收集整理的动态载入树 (ASP+数据库)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: cocos2dx 3.4 截图代码
- 下一篇: 企业信息化与BI系统建设规划