asp实现树形菜单

< %
' 数据库连接
set  conn = Server.CreateObject( " ADODB.Connection " )
conn.open 
" driver={SQL Server};server=chaiwei;DATABASE=chaiwei;UID=sa;PWD= "
' 打开所有父层数据
set  rs = Server.CreateObject( " ADODB.Recordset " )
rs.Open 
" select * from powers where belongid is null order by powerid " ,conn, 1 , 3
' 层次数表态变量赋初值
format_i = 1
' 列表主程序段
do   while   not  rs.eof
' 打印父层数据信息
response.write  " <a href='powerlist.asp?SelfID= "   &  rs( " powerid " &   " &BelongID= "   &  rs( " belongid " &   " '> "   &  rs( " powername " &   " </a> "
response.write 
" <br> "
' 子程序调用,子层数据处理
Call  ListSubPower(rs( " powerid " ))
rs.movenext
loop
' 关闭父层数据集
rs.close
set  rs = nothing
' 子层数据处理子程序
Sub  ListSubPower(id)
        
' 打开隶属于上层 powerid 的所有子层数据信息
         set  rs_sub = Server.CreateObject( " ADODB.Recordset " )
        rs_sub.Open 
" select * from powers where belongid= "   &  id  &   "  order by powerid " ,conn, 1 , 3  
        
' 列子层数据
         do   while   not  rs_sub.eof
                
' 层次数表态变量递进累加
                format_i = format_i + 1
                
' 循环缩进格式控制,因为顶层与二层不需要缩进,所以从第三层开始引用此程序段
                 for  i = format_i  to   3  step  - 1
                        response.write 
"  | "
                        response.write 
"   "
                
next
                
' 打印子层数据信息
                response.write  "  |---- "
                response.write 
" <a href='powerlist.asp?SelfID= "   &  rs_sub( " powerid " &   " &BelongID= "   &  rs_sub( " belongid " & " '> "   &  rs_sub( " powername " &   " </a> "
                response.write 
" <br> "
                
' 递归调用子程序本身,对子层数据进行逐渐处理
                ListSubPower(rs_sub( " powerid " ))
                rs_sub.movenext
        
loop
        
' 层次数表态变量递退累减 
        format_i = format_i - 1  
        
' 关闭子层数据集
        rs_sub.close
        
set  rs_sub = nothing  
End Sub
%
>
 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值