利用Access创建数据库listBase.mdb:
数据表:listTable
数据字段:listIdlistNamelistInfoparentId
连接方法:
<%
dim sConn,sConnStr,sSql
sConnStr="DRIVER={Microsoft Access Driver (*.mdb)};dbq=" & server.mappath("listBase.mdb")
set sConn=server.createobject("adodb.connection")
sConn.open sConnStr
%>
把以上代码保存成文件:initialize.asp
下面这段程序代码是用来显示目录树用的,保存成文件:inc.asp
<!--#include file="initialize.asp"-->
<script language=Javascript/" target="_blank" title="">jscript>
<!--
//此函数用来显示与关闭它的子菜单的,并切换其前面的小图片
function showMenu(menuObj,isSub){
if(menuObj.style.display=="none"){
menuObj.style.display="";
if(isSub==1){
event.srcElement.src="images/open.gif";
}
}
else{
menuObj.style.display="none";
if(isSub==1){
event.srcElement.src="images/close.gif";
}
}
}
//-->
</script>
<!--下面这段蓝色的区域,是设置目录树的根,
其中的内容非数据内的数据,数据库内的数据都附着在它的下面//-->
<%
response.write("<table width=´100%´ border=´0´
cellspacing=´0´ cellpadding=´0´>" & chr(13))
response.write("<tr>" & chr(13)&"<td>" & chr(13) &
"<table width=´100%´ border=´0´ cellspacing=´0´ cellpadding=´0´>")
response.write("<tr>" & chr(13) & "<td width=´18´ >
<ccid_file values="images/root" onclick=jscript:showMenu(subMenu0,0)
style=cursor:hand alt=不可修改 /></td>" & chr(13) &
"<td width=´100´ class=´menuPro´ id=´listName0´>根节点</td>"
& chr(13))
response.write("<td width=´40´ class=´menuFont´ align=´center´
style=´cursor:hand´ onclick=""jscript:showForm(´add´,0)"">
添加</td>" & chr(13))
response.write("<td width=´40´ class=´menuFont´ align=´center´ onclick=´´></td>" & chr(13))
response.write("<td> </td></tr></table></td></tr>"
& chr(13))
response.write("<tr id=´subMenu0´>" & chr(13) &
"<td colspan=´2´>" & chr(13))
´此处调用显示目录树的递归函数
listChild(0)
response.write("</td>" & chr(13) & "</tr>" & chr(13)
& "</table>" & chr(13))
´下面代码为显示目录树最关键的函数,使用了递归方法
(很多象这样类型的都是用递归来做的。)
function listChild(id)
dim sRec,sSql,sNum,sTmp
set sRec=server.createobject("adodb.recordset")
sSql="select listId,listName,listInfo,parentId from
listTable where parentId=" & id
sRec.open sSql,sConn,3,1
if not sRec.eof then
sNum=1
response.write("<table width=´100%´ border=´0´
cellspacing=´0´ cellpadding=´0´>" & chr(13))
while not sRec.eof
sTmp=sConn.execute("select count(listId) as
countSub from listTable where parentId=" & sRec("listId"))
if sTmp("countSub")>0 then
response.write("<tr>" & chr(13))
if sNum=sRec.recordcount then
response.write("<td width=´18´ valign=´top´>
<ccid_file values="images/angel" src=images/angel.gif /></td>" & chr(13))
else
response.write("<td width=´18´
background=´images/eline.gif´ valign=´top´>
<ccid_file values="images/t" /></td>" & chr(13))
end if
response.write("<td>" & chr(13) & "
<table width=´100%´ border=´0´
cellspacing=´0´ cellpadding=´0´>" & chr(13))
response.write("<tr>" & chr(13) &
"<td width=´118´ class=´menuPro´ id=´listName"
& sRec("listId") & "´><ccid_file id=img"
& sRec("listId") & " style=cursor:hand
values="images/close" align=absMiddle
onclick=jscript:showMenu(subMenu" &
sRec("listId") & ",1) alt=" & sRec("listInfo") &
" />" & server.HTMLEncode(sRec("listName")) &
"</td>" & chr(13) & "<td width=´40´
class=´menuFont´><div align=´center´
style=´cursor:hand´ onclick=""
jscript:showForm(´add´," & sRec("listId") & ")"">
添加</div></td><td width=´40´ class=´menuFont´>
<div align=´center´ style=´cursor:hand´
onclick=""jscript:showForm(´edit´,"
& sRec("listId") & ")"">编辑</div></td>" & chr(13))
response.write("<td width=´40´ class=´menuFont´>
<div align=´center´ style=´cursor:hand´
onclick=""jscript:window.location=´disp.asp?disp=del&parentId=
" & sRec("listId") & "´"">删除 </div></td>"
& chr(13) & "<td> </td>" & chr(13) & "</tr>"
& chr(13) & "</table>" & chr(13) & "</td>"
& chr(13) & "</tr>" & chr(13))
response.write("<tr id=´subMenu" & sRec("listId")
&"´ style=´display:none´>")
if sNum=sRec.recordcount then
response.write("<td width=´18´ valign=´top´")
response.write("<ccid_file values="images/angel" />")
response.write("</td>" & chr(13))
else
response.write("<td width=´18´ valign=´top´
background=´images/eline.gif´>")
response.write("</td>" & chr(13))
end if
response.write("<td>" & chr(13))
listChild(sRec("listid"))
response.write("</td>" & chr(13) & "</tr>" & chr(13))
else
response.write("<tr>" & chr(13))
if sNum=sRec.recordcount then
response.write("<td width=´18´ valign=´top´>
<ccid_file values="images/angel" src=images/angel.gif /></td>" & chr(13))
else
response.write("<td width=´18´ background=´
images/eline.gif´ valign=´top´><ccid_file values="images/t" /></td>" & chr(13))
end if
response.write("<td>" & chr(13) & "<table
width=´100%´ border=´0´ cellspacing=´0´
cellpadding=´0´>" & chr(13))
response.write("<tr>" & chr(13) & "<td width=´118´
class=´menuPro´ id=´listName" & sRec("listId") & "´>
<ccid_file id=img" & sRec("listId") & " values="images/file" align=absMiddle alt=" & sRec("listInfo") & " />"
& server.HTMLEncode(sRec("listName"))
& "</td>" & chr(13) & "<td width=´40´ class=´menuFont´>
<div align=´center´ style=´cursor:hand´ onclick=""
jscript:showForm(´add´," & sRec("listId") & ")"">
添加</div></td><td width=´40´ class=´menuFont´>
<div align=´center´ style=´cursor:hand´ onclick=""
jscript:showForm(´edit´," & sRec("listId") & ")"">
编辑</div></td>" & chr(13))
response.write("<td width=´40´ class=´menuFont´>
<div align=´center´ style=´cursor:hand´
onclick=""
jscript:window.location=´disp.asp?disp=del&parentId="
& sRec("listId") & "´"">删除</div></td>" & chr(13)
& "<td> </td>" & chr(13) & "</tr>" & chr(13) &
"</table>" & chr(13) & "</td>" & chr(13) & "</tr>" & chr(13))
end if
sRec.movenext
sNum=sNum+1
wend
response.write("</table>" & chr(13))
end if
sRec.close ´关闭记录集
set sRec=nothing ´关闭记录集
end function
sConn.close ´关闭数据库链接
set sConn=nothing ´关闭数据库链接
%>

文章评论
共有位WEB网友发表了评论 查看完整内容