asp 多级菜单(美化)

表结构

id                       int              

MenuName        nvarchar               50

MenuUrl            nvarchar               255

ParentID            int

Step                   int

<!--#include file="../inc/conndb.asp"-->
<%
'==============================================
'                     数据源
'==============================================
dim rs,sql,rscount
set rs=server.CreateObject("ADODB.recordset")
sql="select * from menu order by id asc"
rs.open sql,conn,1,1
rscount=rs.recordcount
'==============================================
'     将数据存入数组
'==============================================
dim menu(100,3) '需要按记录条数改动
dim ItemString
for i=0 to rscount-1
 if rs.eof or rs.bof then exit for
 if trim(rs("MenuUrl"))<>"" then
 ItemString="<a href='"&rs("MenuUrl")&"' target='main'>"&rs("MenuName")&"</a>"
 else
 ItemString=rs("MenuName")
 end if
 menu(i,0)=rs("ID")
 menu(i,1)=ItemString
 menu(i,2)=rs("ParentID")
 menu(i,3)=rs("Step")
 rs.movenext
next

'==============================================
'     实现Menu
'==============================================
dim css '样式
dim ourstr,stepinfo
sub GetMenu(parentid)
 for j=0 to ubound(menu,1)
  if parentid=menu(j,2) then
  stepinfo=menu(j,3)
  css="step"&stepinfo
  
  '控制输出样式
  if cint(stepinfo)=1 then
   outstr="<div class="""&css&""" οnmοuseοver=""this.style.backgroundColor='#DEE7FF';""  οnmοuseοut=""this.style.backgroundColor='#F1F1F1'"" align='left'><img src='../pic/bullet.gif'>"&menu(j,1)&"</div>"
  elseif cint(stepinfo)=2 then
   outstr="<div class="""&css&""" οnmοuseοver=""this.style.backgroundColor='#DEE7FF';""  οnmοuseοut=""this.style.backgroundColor='#F1F1F1'"" align='left'>"&menu(j,1)&"</div>"
  else
   outstr="<div class="""&css&""" align='left'>"&menu(j,1)&"</div>"
  end if
  response.Write(outstr)
  if menu(j,0)<>"" then

   GetMenu menu(j,0)
  end if
  end if
 next
 
end sub
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>menu</title>
<style type="text/css">
<!--
body  { margin:0px; font:normal 12px 宋体;
SCROLLBAR-FACE-COLOR: #799AE1; SCROLLBAR-HIGHLIGHT-COLOR: #799AE1;
SCROLLBAR-SHADOW-COLOR: #799AE1; SCROLLBAR-DARKSHADOW-COLOR: #799AE1;
SCROLLBAR-3DLIGHT-COLOR: #799AE1; SCROLLBAR-ARROW-COLOR: #FFFFFF;
SCROLLBAR-TRACK-COLOR: #AABFEC;
}
div.step0 {
 background-color: #037BC2;
 height: 18px;
 width: 150px;
 font-weight: bold;
 color: #FFFFFF;
 text-align: center;
}
div.step1 {
 height: 18px;
 cursor: hand;
 padding-left: 10px;
}
div.step2 {
 height: 18px;
 cursor: hand;
 padding-left: 40px;
}
div {
 font-size: 12px;
}
table{
 font-size: 12px;
}
a:link {
 color: #002084;
 text-decoration: none;
}
a:visited {
 text-decoration: none;
 color: #002084;
}
a:hover {
 text-decoration: underline;
}
a:active {
 text-decoration: underline;
}
.kuang {
 border: 1px solid #5582D2;
 background-color: #f1f1f1;
}
-->
</style>
</head>
<body bgcolor="#8CAAE6">
  <br>
<table width="160"  border="0" align="center" cellpadding="0" cellspacing="0" class="kuang">
    <tr>
      <td height="8" align="center" bgcolor="#002F5E"><img src="../pic/dot.gif" width="1" height="1"></td>
    </tr>
    <tr>
      <td height="25" align="center"><span class="menu_title"><a href="main.asp" target=main><b>管理首页</b></a> | <a href="../login/logout.asp" target=_top><b>退出管理</b></a><a href="menu_list.asp" target=main><b></b></a></span></td>
    </tr>
    <tr>
      <td align="center"><% call GetMenu(0)%></td>
    </tr>
  </table>
  <br>
 </body>
</html>


<%
'==============================================
'???????????????????? 数据源
'==============================================
dim rs,sql,rscount
set rs=server.CreateObject("ADODB.recordset")
sql="select * from menu order by id asc"
rs.open sql,conn,1,1
rscount=rs.recordcount
'==============================================
'?????将数据存入数组
'==============================================
dim menu(35,3)?'需要按记录条数改动
dim ItemString
for i=0 to rscount-1
?if rs.eof or rs.bof then exit for
?if trim(rs("MenuUrl"))<>"" then
?ItemString=""&rs("MenuName")&""
?else
?ItemString=rs("MenuName")
?end if
?menu(i,0)=rs("ID")
?menu(i,1)=ItemString
?menu(i,2)=rs("ParentID")
?menu(i,3)=rs("Step")
?rs.movenext
next

'==============================================
'?????实现Menu
'==============================================
dim css?'样式
sub GetMenu(parentid)
?for j=0 to ubound(menu,1)
??if parentid=menu(j,2) then
??css="step"&menu(j,3)
??response.Write(""&menu(j,1)&"
")
??if menu(j,0)<>"" then

???GetMenu menu(j,0)
??end if
??end if
?next
?
end sub
%>

copyright by Lonz

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ASP 加数据库 四级菜单联动 var m_oXMLDoc = new ActiveXObject("Microsoft.XMLDOM"); var m_sBaseSrc = "Tree.asp?ParentCode="; //源码爱好者(http://www.codefans.net) function BindSelect( strXMLSrc , objSelectName, defaultVal) { m_oXMLDoc.async = true; m_oXMLDoc.onreadystatechange = Function( "fnLoadComplete('" + objSelectName + "', '" + defaultVal + "');" ); m_oXMLDoc.load( strXMLSrc ); } function fnLoadComplete(objSelectName, defaultVal) { var objSelect = document.all[objSelectName]; var aryXMLNodes; var node; if (objSelect == null) return; try { var iReadyState = m_oXMLDoc.readyState; } catch(e) { return; } if( iReadyState != 4 ) return; if( m_oXMLDoc != null && m_oXMLDoc.xml != "" ) { objSelect.length = 0; aryXMLNodes = m_oXMLDoc.documentElement.selectNodes("TreeNode"); objSelect.options[0] = new Option("==全部=="); for (var i=0; i 1) { SetSelectedValue(objSelect, defaultVal) } if(objSelect.ChildSelectName != null) { objSelect.onchange = Function( "var val = this.options[this.selectedIndex].value;BindSelect(m_sBaseSrc+val, '"+objSelect.ChildSelectName+"', '"+defaultVal+"');if(val!='')document.all.MaterialClassCode.value=val;" ); objSelect.fireEvent("onchange"); } else { objSelect.onchange = Function( "var val = this.options[this.selectedIndex].value;if(val!='')document.all.MaterialClassCode.value=val;" ); } } } function InitSelect(defaultVal) { document.all.MaterialClassCode.value = ""; BindSelect( m_sBaseSrc + "00", "MaterialClass1", defaultVal); } function Equality(val1,val2) { if (val1.length < val2.length || val2 == "") return false; return (val1.substr(0,val2.length) == val2) } function SetSelectedValue(oSel,val) { if (val == null) return; for(var i=0; i<oSel.length; i++) { if (Equality(val, oSel.options[i].value)) { oSel.selectedIndex = i; if(oSel.ChildSelectName == null) oSel.fireEvent("onchange"); break; } } } window.onload = function(){InitSelect();}

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值