好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

使用DW用ASP+ACCESS编写目录树

利用ACCESS创建数据库listBase.mdb: 数据表:listTable 数据字段:listIdlistNamelistInfoparentId 连接方法: % dimsConn,sConnStr,sSql sConnStr="DRIVER={MicrosoftAccessDriver(*.mdb)};dbq="server.mappath("listBase.mdb") setsConn=server.createobjec

利用ACCESS创建数据库listBase.mdb:

数据表:listTable

数据字段:listIdlistNamelistInfoparentId 连接方法:


dimsConn,sConnStr,sSql

sConnStr="DRIVER={MicrosoftAccessDriver(*.mdb)};dbq="&server.mappath("listBase.mdb")

setsConn=server.createobject("adodb.connection")

sConn.opensConnStr

%>

把以上代码保存成文件:initialize.asp 下面这段程序代码是用来显示 目录 树用的,保存成文件:inc.asp






//此函数用来显示与关闭它的子菜单的,并切换其前面的小图片

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";

}

}

}

//-->



目录 树的根,其中的内容非数据内的数据,数据库内的数据都附着在它的下面//-->


response.write(" " & chr(13))

response.write(" " & chr(13)&" " & chr(13) & " ")

response.write(" " & chr(13) & "
response.write("
response.write(" " & chr(13))

response.write(" " & chr(13))

response.write(" " & chr(13) & " " & chr(13))

'此处调用显示 目录 树的递归函数

listChild(0)

response.write(" " & chr(13) & " " & chr(13) & " " & 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(" " & 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))

else

response.write(" " & chr(13))

end if

response.write(" " & chr(13) & " " & chr(13))

response.write(" " & chr(13) & "
response.write("


response.write("
if sNum=sRec.recordcount then

response.write("
response.write(" ")

response.write(" " & chr(13))

else

response.write(" ")

response.write(" " & chr(13))

end if

response.write(" " & chr(13))

listChild(sRec("listid"))

response.write(" " & chr(13) & " " & chr(13))

else

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) & "


response.write("


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









目录 树




function MM_reloadPage(init) { //reloads the window if Nav4 resized

if (init==true) with (navigator) {if ((appName=='Netscape')&&(parseInt(appVersion)==4)) {

document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}

else if (innerWidth!=document.MM_pgW

innerHeight!=document.MM_pgH) location.reload();

}

MM_reloadPage(true);

//-->






//比如添加时,表单为空,并显示为什么节点添加子节点

//比如修改时,表单内为相应节点的内容,并显示在修改什么节点

function showForm(disp,parentId){

addNodeDiv.style.display="";

document.all.addNodeForm.disp.value=disp;

document.all.addNodeForm.parentId.value=parentId;

if(disp=="edit"){

document.all.addNodeForm.listInfo.value=eval("img"+parentId+".alt");

document.all.addNodeForm.listName.value=eval("listName"+parentId+".innerText");

infoValue.innerText="编辑["+eval("listName"+parentId+".innerText")+"]节点";

}

else{

document.all.addNodeForm.listInfo.value="";

document.all.addNodeForm.listName.value="";

infoValue.innerText="给节点["+eval("listName"+parentId+".innerText")+"]添加子节点";

}

}



function MM_findObj(n, d) { //v4.01

var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {

d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}

if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i
for(i=0;!x&&d.layers&&i
if(!x && d.getElementById) x=d.getElementById(n); return x;

} function MM_dragLayer(objName,x,hL,hT,hW,hH,toFront,dropBack,cU,cD,cL,cR,targL,targT,tol,dropJS,et,dragJS) { //v4.01

//Copyright 1998 Macromedia, Inc. All rights reserved.

var i,j,aLayer,retVal,curDrag=null,curLeft,curTop,IE=document.all,NS4=document.layers;

var NS6=(!IE&&document.getElementById), NS=(NS4

NS6); if (!IE && !NS) return false;

retVal = true; if(IE && event) event.returnValue = true;

if (MM_dragLayer.arguments.length > 1) {

curDrag = MM_findObj(objName); if (!curDrag) return false;

if (!document.allLayers) { document.allLayers = new Array();

with (document) if (NS4) { for (i=0; i
for (i=0; i
with (allLayers[i].document) for (j=0; j
} else {

if (NS6) { var spns = getElementsByTagName("span"); var all = getElementsByTagName("div");

for (i=0;i
for (i=0;i
} }

curDrag.MM_dragOk=true; curDrag.MM_targL=targL; curDrag.MM_targT=targT;

curDrag.MM_tol=Math.pow(tol,2); curDrag.MM_hLeft=hL; curDrag.MM_hTop=hT;

curDrag.MM_hWidth=hW; curDrag.MM_hHeight=hH; curDrag.MM_toFront=toFront;

curDrag.MM_dropBack=dropBack; curDrag.MM_dropJS=dropJS;

curDrag.MM_everyTime=et; curDrag.MM_dragJS=dragJS;

curDrag.MM_oldZ = (NS4)?curDrag.zIndex:curDrag.style.zIndex;

curLeft= (NS4)?curDrag.left:(NS6)?parseInt(curDrag.style.left):curDrag.style.pixelLeft;

if (String(curLeft)=="NaN") curLeft=0; curDrag.MM_startL = curLeft;

curTop = (NS4)?curDrag.top:(NS6)?parseInt(curDrag.style.top):curDrag.style.pixelTop;

if (String(curTop)=="NaN") curTop=0; curDrag.MM_startT = curTop;

curDrag.MM_bL=(cL
curDrag.MM_bR=(cR
curDrag.MM_LEFTRIGHT=0; curDrag.MM_UPDOWN=0; curDrag.MM_SNAPPED=false; //use in your JS!

document.onmousedown = MM_dragLayer; document.onmouseup = MM_dragLayer;

if (NS) document.captureEvents(Event.MOUSEDOWN|Event.MOUSEUP);

} else {

var theEvent = ((NS)?objName.type:event.type);

if (theEvent == 'mousedown') {

var mouseX = (NS)?objName.pageX : event.clientX + document.body.scrollLeft;

var mouseY = (NS)?objName.pageY : event.clientY + document.body.scrollTop;

var maxDragZ=null; document.MM_maxZ = 0;

for (i=0; i
var aLayerZ = (NS4)?aLayer.zIndex:parseInt(aLayer.style.zIndex);

if (aLayerZ > document.MM_maxZ) document.MM_maxZ = aLayerZ;

var isVisible = (((NS4)?aLayer.visibility:aLayer.style.visibility).indexOf('hid') == -1);

if (aLayer.MM_dragOk != null && isVisible) with (aLayer) {

var parentL=0; var parentT=0;

if (NS6) { parentLayer = aLayer.parentNode;

while (parentLayer != null && parentLayer.style.position) {

parentL += parseInt(parentLayer.offsetLeft); parentT += parseInt(parentLayer.offsetTop);

parentLayer = parentLayer.parentNode;

} } else if (IE) { parentLayer = aLayer.parentElement;

while (parentLayer != null && parentLayer.style.position) {

parentL += parentLayer.offsetLeft; parentT += parentLayer.offsetTop;

parentLayer = parentLayer.parentElement; } }

var tmpX=mouseX-(((NS4)?pageX:((NS6)?parseInt(style.left):style.pixelLeft)+parentL)+MM_hLeft);

var tmpY=mouseY-(((NS4)?pageY:((NS6)?parseInt(style.top):style.pixelTop) +parentT)+MM_hTop);

if (String(tmpX)=="NaN") tmpX=0; if (String(tmpY)=="NaN") tmpY=0;

var tmpW = MM_hWidth; if (tmpW
var tmpH = MM_hHeight; if (tmpH
if ((0
maxDragZ
if (curDrag) {

document.onmousemove = MM_dragLayer; if (NS4) document.captureEvents(Event.MOUSEMOVE);

curLeft = (NS4)?curDrag.left:(NS6)?parseInt(curDrag.style.left):curDrag.style.pixelLeft;

curTop = (NS4)?curDrag.top:(NS6)?parseInt(curDrag.style.top):curDrag.style.pixelTop;

if (String(curLeft)=="NaN") curLeft=0; if (String(curTop)=="NaN") curTop=0;

MM_oldX = mouseX - curLeft; MM_oldY = mouseY - curTop;

document.MM_curDrag = curDrag; curDrag.MM_SNAPPED=false;

if(curDrag.MM_toFront) {

eval('curDrag.'+((NS4)?'':'style.')+'zIndex=document.MM_maxZ+1');

if (!curDrag.MM_dropBack) document.MM_maxZ++; }

retVal = false; if(!NS4&&!NS6) event.returnValue = false;

} } else if (theEvent == 'mousemove') {

if (document.MM_curDrag) with (document.MM_curDrag) {

var mouseX = (NS)?objName.pageX : event.clientX + document.body.scrollLeft;

var mouseY = (NS)?objName.pageY : event.clientY + document.body.scrollTop;

newLeft = mouseX-MM_oldX; newTop = mouseY-MM_oldY;

if (MM_bL!=null) newLeft = Math.max(newLeft,MM_bL);

if (MM_bR!=null) newLeft = Math.min(newLeft,MM_bR);

if (MM_bT!=null) newTop = Math.max(newTop ,MM_bT);

if (MM_bB!=null) newTop = Math.min(newTop ,MM_bB);

MM_LEFTRIGHT = newLeft-MM_startL; MM_UPDOWN = newTop-MM_startT;

if (NS4) {left = newLeft; top = newTop;}

else if (NS6){style.left = newLeft; style.top = newTop;}

else {style.pixelLeft = newLeft; style.pixelTop = newTop;}

if (MM_dragJS) eval(MM_dragJS);

retVal = false; if(!NS) event.returnValue = false;

} } else if (theEvent == 'mouseup') {

document.onmousemove = null;

if (NS) document.releaseEvents(Event.MOUSEMOVE);

if (NS) document.captureEvents(Event.MOUSEDOWN); //for mac NS

if (document.MM_curDrag) with (document.MM_curDrag) {

if (typeof MM_targL =='number' && typeof MM_targT == 'number' &&

(Math.pow(MM_targL-((NS4)?left:(NS6)?parseInt(style.left):style.pixelLeft),2)+

Math.pow(MM_targT-((NS4)?top:(NS6)?parseInt(style.top):style.pixelTop),2))
if (NS4) {left = MM_targL; top = MM_targT;}

else if (NS6) {style.left = MM_targL; style.top = MM_targT;}

else {style.pixelLeft = MM_targL; style.pixelTop = MM_targT;}

MM_SNAPPED = true; MM_LEFTRIGHT = MM_startL-MM_targL; MM_UPDOWN = MM_startT-MM_targT; }

if (MM_everyTime

MM_SNAPPED) eval(MM_dropJS);

if(MM_dropBack) {if (NS4) zIndex = MM_oldZ; else style.zIndex = MM_oldZ;}

retVal = false; if(!NS) event.returnValue = false; }

document.MM_curDrag = null;

}

if (NS) document.routeEvent(objName);

} return retVal;

}

//-->










查看更多关于使用DW用ASP+ACCESS编写目录树的详细内容...

  阅读:40次