您的位置:首页 > 数据库

仿照csdn左面的菜单的ASP+数据库无限级树菜单代码分享

2005-03-08 07:20 337 查看
近来问无限级数据库树菜单人很多,我就自己做了一个仿照csdn左面的菜单,自己暂时不用,完全是给大家分享的,要数据库和代码文件请到www.ymdg.com/tree.rar下载,如果有人提供空间存放那是最好了。

本文完全采用大家熟悉的ASP(VBS)制作,过写日子我再写一个基于XML技术的给大家。

QQ:28963147,email:panyuguang962@sohu.com

感谢CSDN和全体网友!

说明:

Access数据库

●     数据库名:tree

●     表名:tree

●     字段名的设计

ID 文本类型 编码

Name 文本类型 节点文字

HyperLink 文本类型 相关信息

---------------------------------------------------

   ID        |   Name         |     HyperLink    

---------------------------------------------------

1_1_1       | ASP            | http://www.csdn.net
---------------------------------------------------

1_1_1_1     | DHTML          | http://www.csdn.net
---------------------------------------------------

1_2_2       | JAVA           | http://www.csdn.net
---------------------------------------------------

1_1_2       | JavaScript     | http://www.csdn.net
---------------------------------------------------

1_2_1       | VB             | http://www.csdn.net
---------------------------------------------------

1_2_1_2     | VBA            | http://www.csdn.net
---------------------------------------------------

1_1         | WEB开发        | http://www.csdn.net
---------------------------------------------------

1           | WWW.CSDN.net   | http://www.csdn.net
---------------------------------------------------

1_2_1_1     | 基础类         | http://www.csdn.net
---------------------------------------------------

1_3_1       | 基础类         | http://www.csdn.net
---------------------------------------------------

1_2         | 开发语言       | http://www.csdn.net
---------------------------------------------------

1_1_1_2     | 内建对象       | http://www.csdn.net
---------------------------------------------------

1_3         | 数据库         | http://www.csdn.net
----------------------------------------------------

文件:nolimited.asp经简单测试好用!代码如下:

<html>

<head>

<META name=VI60_defaultClientScript content=VBScript>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

<title>asp树的研究</title>

</head>

<style type="text/css">

<!--

.aa {

font-size: 14px;

color: #000000;

text-align: center;

vertical-align: middle;

letter-spacing: 0px;

word-spacing: 0px;

}

-->

</style>

<body bgcolor="DEE3F7">

<%

      dim cn,rs,SQL ,Para,NumChild

      set cn=server.CreateObject("ADODB.connection")

      set rs=server.createobject("ADODB.recordset")

      set rs1=server.createobject("ADODB.recordset")

      cn.Open  "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("tree.mdb")    

      SQL="Select * from tree order by ID"

      rs.open SQL,cn,3,2    

do while not rs.EOF

SQL="Select ID from tree where ID like '" & rs("ID") & "%' and ID<>'" & rs("ID") & "' order by ID"

Para=rs("ID") & "|"

NumChild=0

rs1.open SQL,cn, 3,2

NumChild=rs1.RecordCount

do while not rs1.EOF

Para =Para  & rs1("ID") & "|"

rs1.MoveNext

loop

Para=cstr(trim(left(Para,len(Para)-1)))

rs1.Close

%>

<table id="T<%=rs("ID")%>"

border=1

cellpadding=0

cellspacing=0

bordercolor="#DEE3F7"

class="aa"

abbr="<%=Para%>"

summary=<%=checkid(rs("ID"))%>

style="cursor:hand"

onClick="vbs:subtree '<%=Para%>'" >

  <tr>

<td width="<%=17+checkid(rs("ID"))*20%>"

height="20" align="right">

<table width="20" height="20" border="1" cellpadding="0" cellspacing="0" bordercolor="#DEE3F7">

        <tr>

   

          <td align="center" valign="middle" bordercolor="#000000" id="R<%=rs("ID")%>" ><%if NumChild=0 then Response.Write "." else Response.Write "-"%></td>

  </tr>

</table>

  </td>

    <td height="20"

nowrap

bordercolor="#FFFFFF"

onMouseOver="vbs:me.bgcolor='#CCCCCC':me.bordercolor='#999999'"

onMouseOut="vbs:me.bgcolor='#DEE3F7':me.bordercolor='#ffffff'"

title="<%=rs("HyperLink")%>">

      <%=rs("Name")%></td>

  </tr>

</table>

<%

rs.MoveNext

loop

rs.Close:set rs=nothing

cn.Close:set cn=nothing

function checkid(x)

dim Tempnum

Tempnum=0

for i=1 to len(x)

if mid(x,i,1)="_" then

Tempnum=Tempnum+1

end if

next

checkid=Tempnum

end function

%>

  <script language=VBS>

sub subtree(Client_para)

if instr(Client_para,"|")=0 then exit sub

Myarray=split(Client_para,"|")

Mytext=eval("R" & Myarray(0) & ".innertext")

select case Mytext

case "+"

document.all.item("R" & Myarray(0)).innertext="-"

for i=1 to ubound(Myarray)

if  eval("T" & Myarray(i) & ".summary")-eval("T" & Myarray(0) & ".summary")=1 then

document.all.item("T" & Myarray(i)).style.display="block"

end if

if  eval("T" & Myarray(i) & ".summary")-eval("T" & Myarray(0) & ".summary")>1 then

document.all.item("T" & Myarray(i)).style.display="none"

end if

next

case "-"

document.all.item("R" & Myarray(0)).innertext="+"

for i=1 to ubound(Myarray)

if  eval("T" & Myarray(i) & ".summary")-eval("T" & Myarray(0) & ".summary")>=1 then

document.all.item("T" & Myarray(i)).style.display="none"

if eval("R" & Myarray(i) & ".innertext")="-" then

document.all.item("R" & Myarray(i)).innertext="+"

end if

end if

next

end select

set Myarray=nothing

end sub

Sub document_onselectstart

document.selection.clear

End Sub

if isobject(eval("T1"))  then

subtree document.all("T1").abbr

subtree document.all("T1").abbr

end if

</script>

</html>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: