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