'下面代码为显示目录树最关键的函数,使用了递归方法(很多象这样类型的都是用递归来做的。) 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("
" & 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("
" & chr(13)) if sNum=sRec.recordcount then response.write("
" & chr(13)) if sNum=sRec.recordcount then response.write("
" & chr(13)) else response.write("
" & chr(13)) end if response.write("
" & chr(13) & "
" & chr(13)) response.write("
" & chr(13) & "
" & server.HTMLEncode(sRec("listName")) & "
" & chr(13) & "
添加
编辑
" & chr(13)) response.write("
删除
" & chr(13) & "
" & chr(13) & "
" & chr(13) & "
" & chr(13) & "
" & chr(13) & "
" & chr(13)) end if sRec.movenext sNum=sNum+1 wend response.write("
" & chr(13)) end if sRec.close '关闭记录集 set sRec=nothing '关闭记录集 end function sConn.close '关闭数据库链接 set sConn=nothing '关闭数据库链接 %>
下面这是调用页代码,保存成index.asp
<%@LANGUAGE='VBSCRIPT' CODEPAGE='936'%>
下面是提交信息处理页的代码,保存为disp.asp
<% function checkstr(str) str=replace(str,"'","''",1,-1,1) checkstr=str end function
dim disp,parentId,listName,listInfo disp=request.QueryString("disp") parentId=request.QueryString("parentId") select case disp case "add" listName=checkstr(left(request.QueryString("listName"),10)) listInfo=checkstr(left(request.QueryString("listInfo"),50)) if listName="" then listName="空白节点" if listInfo="" then ListInfo="此节点在添加入未填写内容" sSql="insert into listTable (listName,listInfo,parentId) values('" & listName & "','" & listInfo & "'," & parentId & ")" case "edit" listName=checkstr(left(request.QueryString("listName"),10)) listInfo=checkstr(left(request.QueryString("listInfo"),50)) if listName="" then listName="空白节点" if listInfo="" then listInfo="此节点在添加入未填写内容" sSql="update listTable set listName='" & listName & "',listInfo='" & listInfo & "' where listId=" & parentId case "del" sSql="delete from listTable where listId=" & parentId & " or parentId=" & parentId end select sConn.execute sSql,,1 response.redirect("index.asp") %>