如果你是asp高手,研究研究

lindping 2002-08-01 11:17:23
我有发布很多的文章,为了方便读者阅读,我想做成windows菜单那样,一本书一个页面,页面做成这样:左边是是一个目录栏,展开的时候如下:

|
第一章 | 内容区域
第一节 |
第一节 |
.... |
第二章 |
... |



制作一个树形的菜单很常见的了,我看过很多这样的代码,但都是"死"的,如果每一本书都作这样一个程序,岂不把我累死?按照我们伟大的程序员的把一切程序化的思想,能不能把这个菜单做成"活"的?例如,我只要给出书的章,节,这个菜单就自动换上给书的章,节?假设每本书的格式都是一样的由章,节够构成
...全文
20 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lindping 2002-08-02
  • 打赏
  • 举报
回复
<img src= "images/p.gif " width= "12 " height= "21 " > </td >
<!--需要说明一下,$j变量在这里用来决定显示什么图片。此句的意思是,子菜单的最后一项显示l.gif,其它项显示t.gif -- >
这段中原来php中是这样的:
<img src="images/<?php echo ++$j==$db->nf()?"l.gif":"t.gif"; ?>" width="12" height="21"></td>
////需要说明一下,$j变量在这里用来决定显示什么图片。此句的意思是,子菜单的最后一项显示l.gif,其它项显示t.gif-- >

lindping 2002-08-02
  • 打赏
  • 举报
回复
各位,我现在正在参照一个php的程序做,但遇到了一点麻烦,如果你有兴趣研究这个的话,不妨看看我的代码(比较多哦):
说明
数据库
表名:menu
字段:subid(int)(子菜单标志) main(varchar)(主菜单名字) sub(varchar)(子菜单名字)
网页代码:

<!--#include file="public/conn.asp"-->
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<script language="javascript1.2"> //根据鼠标驱动显示或隐藏子菜单的脚本
<!--
function makemenu(id){
mid="m_"+id;
sid="s_"+id;
with (document){
if (all(sid).style.display=="none"){
all(sid).style.display="";
all(mid).innerhtml="<img src='images/m.gif' width='9' height='21'>";
}else{
all(sid).style.display="none";
all(mid).innerhtml="<img src='images/p.gif' width='9' height='21'>";
}
}
}

function makeshow(to){
with (document){
if (to=='in'){
window.event.srcelement.style.color="red";
window.event.srcelement.style.fontweight="bold";
}else{
window.event.srcelement.style.color="";
window.event.srcelement.style.fontweight="";
}
}
}
-->
</script>
</HEAD>

<BODY>
<% dim rs,strcmd,main(),key(),i,rscount,j //连接数据库,读取菜单内容,用数组记录下来

strcmd="select subid,main from menu group by main order by subid "
set rs=Server.CreateObject("adodb.recordset")
rs.Open strcmd,conn,1,1
rscount=rs.RecordCount
redim main(rscount)
redim key(rscount)
i=0

do while not rs.EOF
main(i)=rs("main")
key(i)=rs("subid")
rs.movenext
i=i+1
loop

rs.Close
'set rs=nothing
i=0

//把所有主菜单和子菜单列出来
do while i<rscount
'Response.Write main(i)
'Response.End
strcmd="select sub,subid from menu where main='"&main(i)&"'"
' Response.Write strcmd
' Response.End
rs.Open strcmd,conn,1,1
j=0


%>
<table width="140" border="0" cellspacing="0" cellpadding="0" class="f14">
<tr>
<td width="15"></td>
<td id="m_<%=key(i)%>" width="9" height="21"><img src="images/p.gif" width="9" height="21"></td>
<td>
<div style="cursor:hand" onclick="javascript:makemenu('<%=key(i)%>')" onmouseover="javascript:makeshow('in')" onmouseout="javascript:makeshow('out')"> <%=main(i)%></div>
</td>
</tr>
<tr id="s_<%=key(i)%>" style="display:none">
<td width="15"></td>
<td colspan="2">
<table width="100%" border="0" cellspacing="0" cellpadding="0" class="f9">
<%rs.movenext%>
<tr>
<td width="12">
<img src="images/p.gif" width="12" height="21"></td>
<!--需要说明一下,$j变量在这里用来决定显示什么图片。此句的意思是,子菜单的最后一项显示l.gif,其它项显示t.gif -->
<td> <%Response.Write"<a href='yoururl'>yourstr</a>"%></td>
</tr>
<%j=j+1%>
</table>
</td>
</tr>
</table>
<%i=i+1
rs.Close

loop %>
</BODY>

</HTML>

//错误:1、strcmd="select subid,main from menu group by main order by subid " 原句是从php 的mysql程序中的,现在group by main order by subid这句话在sql server中运行有错,为什么?
2、脚本中提示window.event.srcelement对象不存在,为什么?

ChinaOk 2002-08-01
  • 打赏
  • 举报
回复
http://www.ChinaOK.net/Examples/
也许有你要的
yhncom_36de 2002-08-01
  • 打赏
  • 举报
回复
我想是可以的,让我再想一想!
yonghengdizhen 2002-08-01
  • 打赏
  • 举报
回复
id parentid title
按照这样的表结构设计.

若是用于高速连接可采用逐级查询展开.
否则在表中加一个字段,用于在一次并集查询的结果中按父子关系排序.

ASP代码负责从结果中分离标题树结构,并设置相对应的显示属性
lindping 2002-08-01
  • 打赏
  • 举报
回复
我下载了那个从数据库读取数据制作菜单的,但好像运行不了

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧