栏目表:zl_columns(这是mssql写的,字段就是这些,如果使用access数据库,可以把类型修改成access的类型)
col_id            int (access:自动编号)          栏目编号(主键)
col_name         varchar(access:文本(50))        栏目名称
col_type_id       int (access:数字)           栏目类别编号
col_order         int  (access:数字)           栏目排序(默认为0)
col_target         varchar(10) (access:文本(5))    栏目打开方式(_self:自身窗口_blank:新窗口)
col_link          varchar(50) (access:文本(25))    栏目外部链接

<%
'=================================================
'作用:     ASP无限级循环目录
'作者:     飘逸的风
'版本:     vesion1.1
'修改时间: 02/20/2009
'=================================================
'<!-- # Include File="conn.asp" -->
%>

<%
'=================================================
'获取目录的名称
'Response.Write ColumnsNameFun(1)
'=================================================
Function ColumnsNameFun(ID)
 If IsNull(ID) Then Exit Function
 Set RsTreeName=Server.CreateObject("ADODB.RecordSet")
 SqlTreeName="SELECT col_id,col_name FROM zl_columns WHERE col_id="&ID
 RsTreeName.Open SqlTreeName,Conn,1,1
 If Not (RsTreeName.Eof And RsTreeName.Bof) Then
  ColumnsNameFun=RsTreeName("col_name")
 End If
 RsTreeName.Close
 Set RsTreeName=Nothing
End Function

'----------------------------------------------------------------------------------------
'=================================================
'循环顶级目录列表
'Response.Write ColumnsTop("")
'Function ColumnsTop()
' Set Rs=Server.CreateObject("ADODB.RecordSet")
' Sql="SELECT * FROM zl_columns WHERE col_type_id=0 ORDER BY col_order ASC"
' Rs.Open Sql,Conn,1,1
' For i=1 To Rs.RecordCount
'  If Rs.Eof Then Exit For
'  Response.Write Rs("col_name")&"<br />"&chr(10)
'  Call ColumnsNext(Rs("col_id")," |-") '调用子栏目
'  Rs.MoveNext
' Next
' Rs.Close
' Set Rs=Nothing
'End Function
'=================================================
Function ColumnsTop()
 Set Rs=Server.CreateObject("ADODB.RecordSet")
 Sql="SELECT * FROM zl_columns WHERE col_type_id=0 ORDER BY col_order ASC"
 Rs.Open Sql,Conn,1,1
 For i=1 To Rs.RecordCount
%>
    <tr bgcolor="#E7EDFC" onMouseOver="this.style.backgroundColor='#EAFCD5';this.style.color='red';" onMouseOut="this.style.backgroundColor='';this.style.color='';">
      <td height="25" class="right_table_right_pad"><%=i%>、<%=Rs("col_name")%><%If Rs("col_link")<>"" Then Response.Write " <span style='font-weight:bold; color:#1476B2'>[外]</span>"%></td>
   <td width="80" align="center" class="right_table_title">
   <%
   If Rs("col_target")="_self" Then Response.Write "本窗口"
   If Rs("col_target")="_blank" Then Response.Write "新窗口"
   %>
   </td>
      <td align="center">0</td>
      <td align="center"><a href="<%=Web_PathInfo%>?action=editclass&ClassID=<%=Rs("col_id")%>">修改</a> <a href="<%=Web_PathInfo%>?action=delclass&ClassID=<%=Rs("col_id")%>" onclick="return confirm('您确定要删除吗?\r\r此操作将删除该类别下的所有信息!\r\r请谨慎操作,删除后不可恢复!');">删除</a></td>
      <td align="center">
   <input name="ClassNum" type="text" id="ClassNum" size="6" value="<%=Rs("col_order")%>">
   <input name="ID" type="hidden" id="ID" size="6" value="<%=Rs("col_id")%>">
   </td>
    </tr>
<%
  Call ColumnsNext(Rs("col_id")," |-") '调用子栏目
  Rs.MoveNext
 Next
 Rs.Close
 Set Rs=Nothing
End Function

'=================================================
'循环子目录
'Function ColumnsNext(ID,Str)
' Set RsNext=Server.CreateObject("ADODB.RecordSet")
' SqlNext="SELECT * FROM zl_columns WHERE col_type_id="&ID&" ORDER BY col_order ASC"
' RsNext.Open SqlNext,Conn,1,1
' For i=1 To RsNext.RecordCount
'  If RsNext.Eof Then Exit For
'  Response.Write Str&i&"、"&RsNext("col_name")&"<br />"&chr(10)
'  Call ColumnsNext(RsNext("col_id")," "&Str) '函数调用
'  RsNext.MoveNext
' Next
' RsNext.Close
' Set RsNext=Nothing
'End Function
'=================================================
Function ColumnsNext(ID,Str)
 Set RsNext=Server.CreateObject("ADODB.RecordSet")
 SqlNext="SELECT * FROM zl_columns WHERE col_type_id="&ID&" ORDER BY col_order ASC,col_id Desc"
 RsNext.Open SqlNext,Conn,1,1
 For i=1 To RsNext.RecordCount
%>
    <tr bgcolor="#E7EDFC" onMouseOver="this.style.backgroundColor='#EAFCD5';this.style.color='red';" onMouseOut="this.style.backgroundColor='';this.style.color='';">
      <td height="25" class="right_table_right_pad"><%=Str&" "&i%>、<%=RsNext("col_name")%><%If RsNext("col_link")<>"" Then Response.Write " <span style='font-weight:bold; color:#1476B2'>[外]</span>"%></td>
   <td width="80" align="center" class="right_table_title">
   <%
   If RsNext("col_target")="_self" Then Response.Write "本窗口"
   If RsNext("col_target")="_blank" Then Response.Write "新窗口"
   %>
   </td>
      <td align="center">0</td>
      <td align="center"><a href="<%=Web_PathInfo%>?action=editclass&ClassID=<%=RsNext("col_id")%>">修改</a> <a href="<%=Web_PathInfo%>?action=delclass&ClassID=<%=RsNext("col_id")%>" onclick="return confirm('您确定要删除吗?\r\r此操作将删除该类别下的所有信息!\r\r请谨慎操作,删除后不可恢复!');">删除</a></td>
      <td align="center">
  
   <input name="ClassNum" type="text" id="ClassNum" size="6" value="<%=RsNext("col_order")%>">
   <input name="ID" type="hidden" id="ID" size="6" value="<%=RsNext("col_id")%>">
   </td>
    </tr>
<%
  Call ColumnsNext(RsNext("col_id")," "&Str) '函数调用
  RsNext.MoveNext
 Next
 RsNext.Close
 Set RsNext=Nothing
End Function
'----------------------------------------------------------------------------------------

 


'----------------------------------------------------------------------------------------
'=================================================
'循环顶级目录下拉列表
'Response.Write OptionColumnsTop("")
'Response.Write OptionColumnsTop(3)
'ColID 目录编号
'=================================================
Function OptionColumnsTop(ColID)
 Response.Write "<select name='pro_type_id' id='pro_type_id' class='input'>"&chr(10)&"<option value='-1'>请选择……</option>"&chr(10)
 Set Rs=Server.CreateObject("ADODB.RecordSet")
 Sql="SELECT * FROM zl_columns WHERE col_type_id=0 ORDER BY col_order ASC,col_id Desc"
 Rs.Open Sql,Conn,1,1
 For i=1 To Rs.RecordCount
  If Rs.Eof Then Exit For
  If ColID=Rs("col_id") Then
   selected="selected"
  Else
   selected=""
  End If
  Response.Write "<option value="""&Rs("col_id")&""" "&selected&">"&Rs("col_name")&"</option>"&chr(10)
  Call OptionColumnsNext(Rs("col_id"),ColID," |-") '调用子栏目
  Rs.MoveNext
 Next
 Rs.Close
 Set Rs=Nothing
 Response.Write "</select>"&chr(10)
End Function

 

 

'----------------------------------------------------------------------------------------
'=================================================
'循环顶级目录下拉列表(针对搜索)
'Response.Write OptionColumnsTop("")
'Response.Write OptionColumnsTop(3)
'ColID 目录编号
'=================================================
Function SearchOptionColumnsTop(ColID)
 Response.Write "<select name='pro_type_id' id='pro_type_id' class='input'>"&chr(10)&"<option value='0'>全部类别</option>"&chr(10)
 Set Rs=Server.CreateObject("ADODB.RecordSet")
 Sql="SELECT * FROM zl_columns WHERE col_type_id=0 ORDER BY col_order ASC,col_id Desc"
 Rs.Open Sql,Conn,1,1
 For i=1 To Rs.RecordCount
  If Rs.Eof Then Exit For
  If ColID=Rs("col_id") Then
   selected="selected"
  Else
   selected=""
  End If
  Response.Write "<option value="""&Rs("col_id")&""" "&selected&">"&Rs("col_name")&"</option>"&chr(10)
  Call OptionColumnsNext(Rs("col_id"),ColID," |-") '调用子栏目
  Rs.MoveNext
 Next
 Rs.Close
 Set Rs=Nothing
 Response.Write "</select>"&chr(10)
End Function

 


'----------------------------------------------------------------------------------------
'=================================================
'循环顶级目录下拉列表
'Response.Write OptionColumnsTop("")
'Response.Write OptionColumnsTop(3)
'ColID 目录编号
'=================================================
Function OptionColumnsTop(ColID)
 Response.Write "<select name='pro_type_id' id='pro_type_id' class='input'>"&chr(10)&"<option value='-1'>请选择……</option>"&chr(10)
 Set Rs=Server.CreateObject("ADODB.RecordSet")
 Sql="SELECT * FROM zl_columns WHERE col_type_id=0 ORDER BY col_order ASC,col_id Desc"
 Rs.Open Sql,Conn,1,1
 For i=1 To Rs.RecordCount
  If Rs.Eof Then Exit For
  If ColID=Rs("col_id") Then
   selected="selected"
  Else
   selected=""
  End If
  Response.Write "<option value="""&Rs("col_id")&""" "&selected&">"&Rs("col_name")&"</option>"&chr(10)
  Call OptionColumnsNext(Rs("col_id"),ColID," |-") '调用子栏目
  Rs.MoveNext
 Next
 Rs.Close
 Set Rs=Nothing
 Response.Write "</select>"&chr(10)
End Function


'=================================================
'循环顶级目录下拉列表(添加和修改时用)
'Response.Write OptionColumnsTop("")
'Response.Write OptionColumnsTop(3)
'ColID 目录类别编号
'=================================================
Function EditOptionColumnsTop(ColID)
 Response.Write "<select name='col_type_id' id='col_type_id'>"&chr(10)&"<option value='0'>作为一级栏目</option>"&chr(10)
 Set Rs=Server.CreateObject("ADODB.RecordSet")
 Sql="SELECT * FROM zl_columns WHERE col_type_id=0 ORDER BY col_order ASC,col_id Desc"
 Rs.Open Sql,Conn,1,1
 For i=1 To Rs.RecordCount
  If Rs.Eof Then Exit For
  If ColID=Rs("col_id") Then
   selected="selected"
  Else
   selected=""
  End If
  Response.Write "<option value="""&Rs("col_id")&""" "&selected&">"&Rs("col_name")&"</option>"&chr(10)
  Call OptionColumnsNext(Rs("col_id"),ColID," |-") '调用子栏目
  Rs.MoveNext
 Next
 Rs.Close
 Set Rs=Nothing
 Response.Write "</select>"&chr(10)
End Function

'=================================================
'循环子目录下拉列表
'=================================================
Function OptionColumnsNext(ID,ColID,Str)
 Set RsNext=Server.CreateObject("ADODB.RecordSet")
 SqlNext="SELECT * FROM zl_columns WHERE col_type_id="&ID&" ORDER BY col_order ASC,col_id Desc"
 RsNext.Open SqlNext,Conn,1,1
 For i=1 To RsNext.RecordCount
  If RsNext.Eof Then Exit For
  If ColID=RsNext("col_id") Then
   selected="selected"
  Else
   selected=""
  End If
  Response.Write "<option value="""&RsNext("col_id")&""" "&selected&">"&Str&RsNext("col_name")&"</option>"&chr(10)
  Call OptionColumnsNext(RsNext("col_id"),ColID," "&Str) '递归调用
  RsNext.MoveNext
 Next
 RsNext.Close
 Set RsNext=Nothing
End Function
'----------------------------------------------------------------------------------------
%>