实也不算难,关键还是如何理解。看了半天小灰(quxiaohui_0@163.com)的无级分类树,终于明白了执行原理,现用DW重新写了一遍,因为纯手工编写的代码和DW建立的数据库连接有些问题,无法直接拿来就用。
这下DWER们也该高兴高兴了。下面的代码稍微进行修改就可以直接使用了。
-----数据表的名称为S_Menu
ID 自动编号
MENUORDER 数字 |排序
MENUNAME 文本 | 栏目名称
MENUID 数字 | 存储父级ID的值
-----------------------
数据库连接文件就自己解决吧。
显示和修改部分应该不是很难(省略了),我觉得最麻烦的就莫过于显示了。
---------------
显示部分:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<% Function Menu(ID) %>
<%
Set rs = Server.CreateObject("ADODB.Recordset")
rs.ActiveConnection = MM_ECONN_STRING
rs.Source = "SELECT * FROM S_Menu WHERE MENUID = " + Replace(ID, "'", "''") + " ORDER BY MENUORDER ASC"
rs.CursorType = 0
rs.CursorLocation = 2
rs.LockType = 1
rs.Open()
%>
<%
while not rs.eof
%>
<%if ID = 0 then %> <% else %> <% end if %><%= (rs.Fields.Item("MENUNAME").Value) %> |
<%
Set rs1 = Server.CreateObject("ADODB.Recordset")
rs1.ActiveConnection = MM_ECONN_STRING
rs1.Source = "SELECT * FROM S_Menu WHERE MENUID = " + Replace((rs.Fields.Item("ID").Value), "'", "''") + ""
rs1.CursorType = 0
rs1.CursorLocation = 2
rs1.LockType = 1
rs1.Open()
If Not rs1.EOF And Not rs1.BOF Then'记录集不为空,则
%>
<% Menu(rs.Fields.Item("ID").Value) %> |
|
<%
End If
rs1.Close()
Set rs1 = Nothing
rs.movenext
wend
%>
<%
rs.Close()
Set rs = Nothing
%>
<% end Function %>
<% Response.Write(menu ("0")) %>