• 站点地图
  • 加入收藏
  • 设为首页
  • 中国网管、站长学习园地hspace="5"
    当前位置:IT加速度>>数据库>>Access>>内容阅读
    ASP和Access结合编写目录树的程序实例
    作者:  来源:  时间:2008-07-09
      导读:

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

    责任编辑:it415.com

    上一篇:如何保证Microsoft Access的安全性
    下一篇:没有文章
    相关内容