清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>
程序调用:
<%
Dim rss,u
Set rss = Server.CreateObject("Adodb.RecordSet")
rss.Open "select ID,fatherID,name from [Select_Menu] order by id",Conn,1,1
Response.Write "<select name='FatherID'><option value='0'> - 0.顶级菜单</option>"&GetListTree&"<select>"
rss.Close
%>
数据库结构:
Select_Menu:
id,fatherid,name
fatherid=0,置为顶级菜单
函数:
<%
'无限级分类菜单树Select输出函数
Function GetListTree
Dim Result,i
Redim u(rss.RecordCount,3)
for i = 1 to rss.RecordCount
u(i - 1,0) = rss("ID")
u(i - 1,1) = rss("fatherID")
u(i - 1,2) = rss("Name")
rss.MoveNext
next
'rss.moveFirst
for i = 0 to uBound(u) - 1
If Int(u(i,1)) = 0 Then
'如果ID=FatherID则定位其父类
if u(i,0)=fatherid then
selected="Selected"
else
selected=""
end if
Result = Result &"<option "&Selected&" value='"& u(i,0) &"'> ◢ "& u (i ,2) &"</option>"& vbcrlf & SunSorts(u(i ,0), 0)
End If
next
GetListTree = Result
End Function
Function SunSorts(who,SunLevel)
Dim selected
Dim Result,i,sp,EndID
for i = 0 to SunLevel
sp = sp &"--"
next
for i = 0 to uBound(u) - 1
If Int(u(i,1)) = Int(who) Then
EndID = u(i ,0)
else
EndID = fatherID
End If
next
for i = 0 to uBound(u) - 1
If Int(u(i,1)) = Int(who) Then
If u(i ,0) - EndID = 0 Then
Result = Result &"<option "&selected&" value='"& u(i,0) &"'>"& sp &"┕"& u(i ,2) & "</option>"& vbcrlf & SunSorts(u(i ,0),SunLevel + 1)
Else
Result = Result &"<option "&selected&" value='"& u(i,0) &"'>"& sp &"┝ "& u(i ,2) & "</option>"& vbcrlf & SunSorts(u(i ,0),SunLevel + 1)
End If
End If
next
SunSorts = Result
End Function
%>