• RainbowSoft Studio Z-Blog
  • RainbowSoft Studio Z-Blog
  • 本站支持WAP访问
  • 订阅本站的 RSS 2.0 新闻聚合
Name:密陀僧
Email:sunwindy[A]gmail.com

ASP使用递归实现无限级分类方法

Post by 密陀僧, 2009-7-1, Views:
1、数据库连接函数

Function OpenDB() 
  On Error Resume Next
  Set Conn = Server.CreateObject("ADODB.Connection")
  Conn.open "Provider = Microsoft.Jet.OLEDB.4.0;Data Source =test.mdb"
  If Err Then
    err.Clear
    Set Conn = Nothing
    Response.Write "数据库链接错误"
    Response.End
  End If
  
  OpenDB=True
End Function


2、数据表设计
Table:Catogory
字段:ID,Cate_name,Cate_Parent

3、递归函数

Function CheckNum(Byval Num)
  If Not Isnumeric(Num) Then
    CheckNum=0
    Exit Function
  End If
    CheckNum=Cint(Num)
End Function

Sub GetClassOption(Byval C_ID,Byval CoinStr)
  C_ID=CheckNum(C_ID)
  If C_ID<>0 Then
    Set Rs_CID=Conn.Execute("Select ID,Cate_name From Catogory Where Cate_Parent="&C_ID)
    Do While Not Rs_CID.Eof
      Response.Write("<option value="""&Rs_CID("ID")&"""")
      If ClassID=int(Rs_CID("ID")) Then Response.Write(" selected=""selected"" ")
      Response.Write(">"&CoinStr&""&Rs_CID("Cate_name")&"</option>"&vbcrlf)
      Call GetClassOption(Rs_CID("ID"),"    "&CoinStr)
    Rs_CID.Movenext
    Loop
    Rs_CID.Close
    Set Rs_CID=Nothing
  End If
End Sub


4、第一级分类显示及调用递归显示无限级分类

<select name="ClassID" id="ClassID">
        <option value="0">请选择分类</option>
    <%Set Rs=Conn.Execute("select ID,Cate_name From Catogory Where Cate_Parent=0 Order by ID")
    Do While Not Rs.Eof
      Response.Write("<option value="""&Rs("ID")&"""")
      Response.Write(">├"&Rs("Cate_name")&"</option>"&vbcrlf)
      Call GetClassOption(Rs("ID"),"    |-")
    Rs.Movenext
    Loop
    Rs.Close
    Set Rs=Nothing
    %>
      </select>


具体实现效果见:http://www.yixueren.com/subject.asp?C_ID=1
Tags: asp  递归  无限级分类 
分类:技术 | 评论:0 | 引用:0 | 点击这里获取该日志的TrackBack引用地址
上一篇:Apache建立陷阱主机防止非法域名指向
下一篇:omegle国内山寨版为何不能成功

或许你还对下面的文章感兴趣

Comments

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

Hot Articles

New Articles

Last Comments

Guest