赛迪网 > IT技术 数据库 > 精彩更新
  IT资讯搜索
 
IT产品搜索

Dreamweaver下使用ASP+Access编写目录树 (1)

发布时间:2007.07.23 05:05     来源:赛迪网技术社区    作者:010032

利用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=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>&nbsp;</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>&nbsp;</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>&nbsp;</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 '关闭数据库链接
%>

1 2 3 下一页>>


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
· 推荐:教你如何在Perl下连接Access数据库 (07-19) · Access中利用拆分后端数据库保存不同数据 (07-18)
· 教你如何用Access逐条输出Excel2000记录 (07-16) · 微软Office软件Word与Access数据交流技巧 (07-10)
· Access转SQL Server方法 (07-09) · 逐步讲解向Access数据库上传且显示图片 (07-09)
· 案例:基于Access数据库抽奖系统设计 (06-29) · 揭开Microsoft Access秘密技巧以及陷阱 (06-29)
· 教你如何防治Access宏病毒的通用技巧 (06-29) · 如何把Access转成SQL Server的方法介绍 (06-28)
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
  赛迪推荐  
  手机·资费 ·新品·导购·评测·手机资费·宽带
手机搜索  诺基亚 N73 MOTO Z6
  IT产品 ·笔记本·台式机·服务器·打印·投影
IT产品搜索 
  IT技术 ·开发·网管·安全·数据库·操作系统
  博客·论坛 ·曾剑秋·项立刚·Java学习·网管