| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1099 人关注过本帖
标题:请教:递归菜单如何实现打开页面时不用鼠标点击就能显示一级菜单。
只看楼主 加入收藏
atian
Rank: 1
等 级:新手上路
帖 子:268
专家分:0
注 册:2006-1-24
结帖率:60%
收藏
 问题点数:0 回复次数:1 
请教:递归菜单如何实现打开页面时不用鼠标点击就能显示一级菜单。
请教:递归菜单如何实现打开页面时不用鼠标点击就能显示一级菜单。
每次进去后,都要用鼠标点击一下才能显示,太麻烦了,能不能一进去就显示所有的一级菜单。
递归菜单如何实现打开页面不用点击就默认显示一级菜单.rar (2 KB)


程序代码:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<%
dataurl=Server.MapPath("menutree.mdb")'数据库地址
dim conn,strQuery,rs
set conn = server.CreateObject("adodb.connection")
conn.Open "PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE="&dataurl
strQuery="select * from menufun"
set rs=server.createobject("adodb.recordset")
rs.open strQuery,conn,1,1
allnum=rs.RecordCount
'取得最大的层数MaxLevel
MaxLevel=1             
for i=1 to allnum

 if rs("PartLevel")>MaxLevel then
    MaxLevel=rs("PartLevel")

 else
    MaxLevel=MaxLevel

 end if

 rs.movenext
next
rs.close
set rs=nothing
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title></title>
<style type="text/css">
<!--
td {
    font-size: 12px;
}
-->
</style>
<script language="javascript">
<!--
function divshow(cmy1,cmy2,cmy3)
//展开/合并菜单函数
{
  if(document.all("div"+cmy1+cmy2+cmy3).style.display==""){
    document.all("div"+cmy1+cmy2+cmy3).style.display="none"
  }else{
    document.all("div"+cmy1+cmy2+cmy3).style.display=""
  }
}
//-->
</script>
<base target="main">
</head>
<body topmargin="0" >
<table border="0" cellpadding="0" cellspacing="0">
<tr onClick="javascript:divshow(1,0,1);" style="cursor:hand"><TD><img src="images/admin.gif">点击选择</TD></tr>
<%
dim toumh(100) '定义用于存放菜单前显示树图片的数组,如果应用时的最大级数大于十,请扩大数组维数
call menutree(1,0,MaxLevel,1)'首次调用菜单输出函数
'第一个参数:菜单的级数
'第二个参数:父菜单的ID,一级菜单默认为零
'第三个参数:菜单的最大级数
'第四个参数:用于区分层的名称,方便实现菜单的展开合并
%>
</table>
<%
'funno  菜单的级数
'funcid  父菜单的ID,一级菜单父级ID值为0
'MaxLevel  菜单的最大级数
'divno  用于区分层的名称,方便实现菜单的展开合并
'menutree()  数形菜单输出函数
function menutree(funno,funcid,MaxLevel,divno)
  dim rsfun,numfun,funcidfun
  strQuery1="select * from menufun where sup_funcid='"&funcid&"'"
  set rsfun=server.createobject("adodb.recordset")
  rsfun.open strQuery1,conn,1,1
  numfun=rsfun.RecordCount
  response.Write("<tr><td>")
  response.Write("<div id='div"&funno&funcid&divno&"' style='display:none'>")'输出层,并根据相关参数给层定义唯一的ID名称
  response.Write("<table border='0' cellpadding='0' cellspacing='0'>")
  for j=1 to numfun
  funcidfun=rsfun("funcid")
  if j=numfun then   '判断是否是本级菜单的最后一个
    toumh(funno)="space.gif"  '是则输出空白图片space.gif
  else
    toumh(funno)="line_v.gif" '否则输出竖线图片line_v.gif
  end if
    '判断是否有下级菜单
    strQuery2="select * from menufun where sup_funcid='"&funcidfun&"'"
    set rsfun2=server.createobject("adodb.recordset")
    rsfun2.open strQuery2,conn,1,1
    numfun2=rsfun2.RecordCount
    '如果numfun2>0则有,反之则无
    if numfun2 > 0 then
      response.Write("<tr onClick='javascript:divshow("&funno+1&","&funcidfun&","&j&");' style='cursor:hand'>") 
          '用单击事件调用展开/合并菜单函数
    else
      response.Write("<tr style='cursor:hand'>")
    end if
    response.Write("<td>")
    if numfun2 > 0 then
      treeico="open_normal.gif"
      if j=numfun then
        treeico="open_end.gif"
      end if      
    else
      treeico="none_normal.gif"
      if j=numfun then
        treeico="none_end.gif"
      end if      
    end if
    for m=1 to cint(funno)-1    '根据当前菜单的级数输出菜单前的数形图片
      response.Write("<img src='images/"&toumh(m)&"' align='absMiddle'>")
    next
    if not rsfun("enable") then    '判断菜单项是否可用,不可用的菜单名用#FF0000色显示
       response.Write("<img src='images/"&treeico&"' align='absMiddle'><font color='#ff0000'>"&rsfun("funcname")&"</font>")'输出不可用菜单名
    else
        if numfun2>0 then
        response.Write("<img src='images/"&treeico&"' align='absMiddle'>"&rsfun("funcname"))
        else
        response.Write("<img src='images/"&treeico&"' align='absMiddle'>"&rsfun("funcname"))
'输出可用菜单名
        end if
    end if
    response.Write("</td>")
    response.Write("</tr>")
    if cint(funno)<cint(MaxLevel) then
      call menutree(cint(funno)+1,funcidfun,MaxLevel,j)  '递归调用 menutree()函数
    end if
    rsfun.movenext 
  next
  'response.Write("</td></tr>")
  response.Write("</table></div>")
  response.Write("</td></tr>")
end function
%>

</body>
</html>


[此贴子已经被作者于2021-11-4 23:55编辑过]

搜索更多相关主题的帖子: 菜单 response end Write if 
2021-11-04 23:53
atian
Rank: 1
等 级:新手上路
帖 子:268
专家分:0
注 册:2006-1-24
收藏
得分:0 

认认真真的工作,开开心心的娱乐......
2021-11-05 00:23
快速回复:请教:递归菜单如何实现打开页面时不用鼠标点击就能显示一级菜单。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025061 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved