类似 MSDN 左边导航树效果的实现! [JavaScript + ASP] (转)[@more@]
MSDN 和CSDN 左边导航树的效果都是在点击父节点时,再发出请求填充其子节点!好像网页只刷新部分! Javascript + [ASP + Access] 实现
源程序下载: http://www.triaton.com.cn/Private/Zip/Tree.zip
<!-- Tree.asp -->
New Document
<% dim adoConnection set adoConnection = Server.Createobject("ADOdb.Connection") 'adoConnection.Open "Provider=sqlOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=Test;Data source=TRIATONPSQL2KE" adoConnection.Open "Provider=microsoft.Jet.OLEDB.4.0;Data Source=" & Server.mappath("/dvbbs") & "Tree.mdb;Persist Security Info=False" dim adoRecordset set adoRecordset = Server.CreateObject("ADODB.Recordset") adoRecordset.Open "select *,(select count(*) from tree where parentid = T.id) as children from tree T where rootid = id ",adoConnection dim i i=0 do until adoRecordset.eof %>
<% if adoRecordset.Fields.item("Children").value >0 then %> onClick='ExpandNode(Node_<% = i %>,<% =adoRecordset.Fields.item("id").value%>)'>+ <% else %> >- <% end if%> ,<% =adoRecordset.Fields.item("id").value%>)'><% =adoRecordset.Fields.item("remark").value%>
正在加载 ...
<% i=i+1 adoRecordset.MoveNext loop adoRecordset.close set adoRecordset = nothing adoConnection.close set adoConnection = nothing %> | |
<!-- SubTree.asp -->
New Document <%
dim parentid
parentid = request.querystring("PID")
parentnode = request.querystring("Parentnode")
dim adoConnection
set adoConnection = Server.CreateObject("ADODB.Connection")
' adoConnection.Open "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=Test;Data Source=TRIATONPSQL2KE"
adoConnection.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.mappath("/dvbbs") & "Tree.mdb;Persist Security Info=False"
dim adoRecordset
set adoRecordset = Server.CreateObject("ADODB.Recordset")
adoRecordset.Open "select *,(select count(*) from tree where parentid =T.id ) as Children from tree T where parentid = " & parentid ,adoConnection
response.write adoRecordset.source
dim i
Dim SHTML
dim parentnode
parentnode = request.querystring("Pnode")
dim j
j= len(parentnode) - len(replace(parentnode,"_",""))
dim nSpace
for i=0 to j - 1
nSpace = nSpace + " "
next
i=0
do until adoRecordset.eof
shtml = shtml _
& "
" & nSpace _
& " if adoRecordset.Fields.item("Children").value >0 then
shtml = shtml & " onClick='ExpandNode(" & parentnode & "_" & i + 1 & "," & adoRecordset.Fields.item("id").value & ")'>+"
else
shtml = shtml & ">-"
end if
shtml = shtml & "n" & " if adoRecordset.Fields.item("Children").value >0 then
shtml = shtml & "onDblClick='ExpandNode(" & parentnode & "_" & i + 1 & "," & adoRecordset.Fields.item("id").value & ")'"
end if
shtml = shtml & ">" & adoRecordset.Fields.item("id").value & ": " & adoRecordset.Fields.item("remark").value & "
"
if adoRecordset.Fields.item("Children").value >0 then
shtml = shtml & "
" & nSpace & " 正在加载 ...
"
end if
i=i+1
adoRecordset.MoveNext
loop
adoRecordset.close
set adoRecordset = nothing
adoConnection.close
set adoConnection = nothing
'response.write shtml
%>
表结构:
Tree(id,parentid,remark)