请教关于ASP选项卡(选项卡名称、内容从数据库查询读取)

AS185 2008-09-15 10:59:45
大致图:

大致代码(CSS我就不列出来了):

<script>
<!--
function setTab(name,cursel,n){
for(i=1;i<=n;i++){
var menu=document.getElementById(name+i);
var con=document.getElementById("con_"+name+"_"+i);
menu.className=i==cursel?"hover":"";
con.style.display=i==cursel?"block":"none";
}
}
//-->
</script>


<div id="Tab1">
<div class="Menubox">
<ul>
<li id="one1" onmouseover="setTab('one',1,4)">新闻1</li>
<li id="one2" onmouseover="setTab('one',2,4)">新闻2</li>
<li id="one3" onmouseover="setTab('one',3,4)">新闻3</li>
<li id="one4" onmouseover="setTab('one',4,4)">新闻4</li>
</ul>
</div>
<div class="Contentbox">
<div id="con_one_1" class="hover">新闻列表1</div>
<div id="con_one_2" style="display:none">新闻列表2</div>
<div id="con_one_3" style="display:none">新闻列表3</div>
<div id="con_one_4" style="display:none">新闻列表4</div>
</div>
</div>

上面的选项卡类别可以用循环从类别表class查出类别,类别ID未必是连贯的;

<div class="Menubox">
<ul>
<%
set rsc=conn.execute("select top 3 * from CT_TextSort2 where f_id=3 order by list")
if rsc.eof and rsc.bof then response.write ""
i=1
do while not rsc.eof
%>
<li id="one<%=i%>" onmouseover="setTab('one',<%=i%>,4)"><%=rsc("name")%></li>
<%
rsc.movenext
i=i+1
loop
rsc.close
set rsc=nothing
%>
</ul>
</div>


可是下面的<div class="Contentbox">标签怎么能查找出跟上面类别ID一致的记录,并且循环4个类别呢?
我只会查询套查询循环输出每个类别选项卡的内容。。。这样做太笨了,效率很低。。网页特别慢,尤其是一个页面有4、5个这种选项卡的时候,请教各位大侠,写这种东西的思路,如果能放出改好的代码更感激了,拜谢!小弟是菜鸟,麻烦解释清楚一点,嘿嘿
...全文
472 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
AS185 2008-09-16
  • 打赏
  • 举报
回复
CSDN首页的选项卡打开可快了。。
AS185 2008-09-16
  • 打赏
  • 举报
回复
sy_binbin兄,这个我也知道,而且我只会这么写。。。总感觉这种嵌套循环效率很低速度很慢,这个页面我要有5、6个这样的选项卡,做完之后页面打开超级慢,而且切换的时候超级卡,浏览器CPU占用100%。。想知道有没有别的更高效的方法来实现这个功能(不会生成静态页面..>.<)!

感谢mrwang2000兄,可惜俺不会AJAX啊。。。o(>.<)o
mrwang2000 2008-09-16
  • 打赏
  • 举报
回复
[个人意见,仅供参考]
仅仅是提供一些思路:
如果是希望速度快一些,不妨“让用户仅仅得道他们希望得到的数据”,也就是说,内容的获取是在点击TabButton的时候发生。
比较好的解决方案就是使用AJAX。

1.创建单独的ASP,可以通过传递类型参数获取内容:比如xxx.asp?classid=2
2.在selTab里面使用AJAX框架类获取xxx.asp?classid=2的内容
3.在selTab里面使用Contentbox。innerHTML=YourContentFromASP来填充content_div的内容。




wl__0464 2008-09-16
  • 打赏
  • 举报
回复
做个记号。
sy_binbin 2008-09-16
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 mrwang2000 的回复:]
[个人意见,仅供参考]
仅仅是提供一些思路:
如果是希望速度快一些,不妨“让用户仅仅得道他们希望得到的数据”,也就是说,内容的获取是在点击TabButton的时候发生。
比较好的解决方案就是使用AJAX。

1.创建单独的ASP,可以通过传递类型参数获取内容:比如xxx.asp?classid=2
2.在selTab里面使用AJAX框架类获取xxx.asp?classid=2的内容
3.在selTab里面使用Contentbox。innerHTML=YourContentFromASP来填充content_…
[/Quote]

用AJAX是不错的方法
sy_binbin 2008-09-15
  • 打赏
  • 举报
回复

<div class="Contentbox">
<%
set rsc=conn.execute("select top 3 * from CT_TextSort2 where f_id=3 order by list")
if rsc.eof and rsc.bof then response.write ""
i=1
do while not rsc.eof
%>
<div id="con_one_<%=i%>" class="hover">
<%
set rs = server.CreateObject("adodb.recordset")
sql = "select * from 新闻表 where 新闻类别 = "&rsc("类别编号")&""
rs.open sql,conn,1,1
do while not rs.eof
response.Write "新闻列表"&"<br>"
rs.movenext
loop
rs.close
%>
</div>
<%
rsc.movenext
i=i+1
loop
rsc.close
set rsc=nothing
%>

</div>



试试这个!不知道对不对

28,390

社区成员

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

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