无限级分类下拉菜单数据版

20 篇文章 0 订阅
12 篇文章 0 订阅

数据库表结构:ClassID,ClassName,ParentID
代码实现:
Class T_Class
      dim ClassID,ClassName,ParentID
      Public Sub Add()
         strSQL = "Insert into ArticleClass(ClassName,ParentID) values('" & ClassName & "'," & ParentID & ")"
          Conn.Execute(strSQL)
     End Sub
 Public Function Combox
  dim rs,sql,msg,Format
  Format ="  "  
  msg = ""
  sql = "select * from ArticleClass where ParentID = 0"
  set rs = Conn.execute(sql)
  while not rs.eof     
   msg = msg & "<option value=" & rs("ClassID") & ">" & rs("ClassName") & "</option>"
   if IsExistChild(rs("ClassID")) then
    msg = msg & cmb(rs("ClassID"),Format)
   end if
   rs.movenext
  wend
  rs.close
  set rs = nothing
  Combox = msg  
 End Function
 Private Function cmb(ByVal ClassID,ByVal Format)
  dim rs,sql,msg,i,Max,iFormat
  'set rs = server.CreateObject ("adodb.recordset")
  msg = ""
  sql = "Select * from ArticleClass where ParentID=" & ClassID
  set rs = Conn.execute(sql)
  Max = CountByClass(ClassID)
  i = 1
  iFormat = Format & "├"
  while not rs.eof
   if i = Max then
    Format = replace(iFormat,"├","└")
   else
    Format = iFormat
   end if
   msg = msg & "<option value="&rs("ClassID") & ">" & Format &rs("ClassName") & "</option>"
   i = i + 1
   if IsExistChild(rs("ClassID")) then
    Format = Format & "&nbsp;&nbsp;"
    Format =replace(Format,"├","│")
    msg = msg & cmb(rs("ClassID"),Format)
   end if
   rs.movenext
  wend
  rs.close
  set rs = nothing
  cmb = msg
 End Function
 Private Function CountByClass(ByVal ClassID)
  dim rs,sql,msg
  sql = "Select count(*) as Max from ArticleClass where ParentID=" & ClassID
  set rs = Conn.Execute(sql)
  msg = rs("Max")
  rs.close
  set rs = nothing
  CountByClass = msg
 End Function
 ' 是否有子类
 Public Function IsExistChild(ByVal ClassID)
  dim rs,sql
  sql = "Select * from ArticleClass where ParentID=" & ClassID
  set rs = conn.execute(sql)
  if not (rs.bof and rs.eof ) then
   msg = True
  else
   msg = False
  end if
  rs.close
  set rs = nothing
  IsExistChild = msg
 End Function


End Class

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值