通过ASP+ACCESS实现无限级目录树的方法
演示:http://asp2004.net/temp/treemenu/
下载地址:http://asp2004.net/temp/treemenu.rar
关键代码:
<%
set conn=server.createobject("ADODB.CONNECTION") connstr="DBQ="+server.mappath("db1.mdb")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};" conn.open connstr function menu(id) set rs=server.CreateObject("adodb.recordset") sql="select * from menu where id1="&id&" order by url,id" rs.open sql,conn,1,1 if rs.recordcount=0 then rs.close set rs=nothing exit function end if response.write("<table border='0' cellspacing='0' cellpadding='0'>") i=1 while not rs.eof if len(rs("url"))>0 then if i=rs.recordcount then menutype="file1" else menutype="file" end if menuname="<a href='"&rs("url")&"' target='_blank'>"&rs("menuname")&"</a>" onmouseup="" else if i=rs.recordcount then menutype="menu3" listtype="list1" onmouseup="with(eval('id"&rs("id")&"'))if(style.display==''){style.display='none';this.className='menu3';}else{style.display='';this.className='menu4';}" else menutype="menu1" listtype="list" onmouseup="with(eval('id"&rs("id")&"'))if(style.display==''){style.display='none';this.className='menu1';}else{style.display='';this.className='menu2';}" end if menuname=rs("menuname") end if %> <tr> <td class="<%= menutype%>" onMouseUp="<%= onmouseup%>"><%= menuname%></td> </tr> <%if len(rs("url"))<3 then%> <tr id="id<%= rs("id")%>" style="display:none"> <td class="<%= listtype%>"><%menu(rs("id"))%></td> </tr> <% end if rs.movenext i=i+1 wend response.write("</table>") rs.close set rs=nothing end function %> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>=========无限级目录树=========http://bbs.asp2004.net</title> <style type="text/css"> <!-- .menu1 { background-image: url(folder1.gif); background-repeat: no-repeat; height: 17px; left: 32px; padding-left: 32px; cursor: hand; } .menu2 { background-image: url(folder2.gif); background-repeat: no-repeat; height: 17px; left: 32px; padding-left: 32px; cursor: hand; } .menu3 { background-image: url(folder3.gif); background-repeat: no-repeat; height: 17px; left: 32px; padding-left: 32px; cursor: hand; } .menu4 { background-image: url(folder4.gif); background-repeat: no-repeat; height: 17px; left: 32px; padding-left: 32px; cursor: hand; } .list { padding-left: 20px; background-image: url(list.gif); background-repeat: repeat-y; } .list1 { padding-left: 20px; } .file { background-image: url(file.gif); background-repeat: no-repeat; height: 16px; cursor: hand; padding-left: 32px; } .file1 { background-image: url(file1.gif); background-repeat: no-repeat; height: 16px; cursor: hand; padding-left: 32px; } body { font-size: 9pt; color: #000000; background-color: #FFFFFF; } a:link { font-size: 9pt; color: #000000; text-decoration: none; } a:visited { font-size: 9pt; color: #000000; text-decoration: none; } a:hover { font-size: 9pt; color: #0000FF; text-decoration: none; position: relative; right: 1px; bottom: 1px; } a:active { font-size: 9pt; color: #000000; text-decoration: none; } --> </style> <meta name="keywords" content="asp2004,树,菜单,无限级"> <meta name="author" content="小灰,quxiaohui_0@163.com"> </head> <body> <a href="http://bbs.asp2004.net/" target="_blank">http://bbs.asp2004.net/</a>提供最新下载《<a href="menu.asp">管理</a>》<br> <% menu 0 conn.close set conn=nothing %> </body> </html>