ASP vbscript过程(函数)中加入HTML格式的代码,如何改为vbscript格式?

将以下代码加入vbscript过程(函数)中,即<%……%>中。问:改用vbscript格式,有什么简洁的写法?<SCRIPTlanguage=javascript>fu... 将以下代码加入vbscript过程(函数)中,即<%……%>中。

问:改用vbscript格式,有什么简洁的写法?

<SCRIPT language=javascript>
function opencat(cat,img){
if(cat.style.display=="none"){
cat.style.display="";
img.src="images/class2.gif";
} else {
cat.style.display="none";
img.src="images/class1.gif";
}
}
</Script>
<TABLE cellSpacing=0 cellPadding=5 width="99%" border=0>
<%
dim i
if rsBigClass.eof and rsBigClass.bof then
Response.Write "栏目正在建设中……"
else
i=1
do while not rsBigClass.eof
%>
<TR>
<TD language=javascript onmouseup="opencat(cat10<%=i%>000,img10<%=i%>000);" id=item$pval[catID]) style="CURSOR: hand" width=32 height=24 align=center>
<IMG id=img10<%=i%>000 src="images/class1.gif" width=20 height=20>
</TD>
<TD width="162"><a href='Pro.asp?BigClassName=<%=rsBigClass("BigClassName")%>'><%=rsBigClass("BigClassPic")%></a></TD>
</TR>
<TR>
<% if BigClassName<>rsBigClass("BigClassName") then %>
<TD id=cat10<%=i%>000 style="DISPLAY" colspan="2">
<% else %>
<TD id=cat10<%=i%>000 style="DISPLAY" colspan="2">
<% end if %>
<%
dim rss,sqls,j
set rss = server.CreateObject ("adodb.recordset")
sqls="select * from SmallClass where BigClassName='" & rsBigClass("BigClassName") & "' order by SmallClassID"
rss.open sqls,conn,1,1
if rss.eof and rss.bof then
Response.Write "没有小分类"
else
j=1
do while not rss.eof
%>
    <IMG src="images/class3.gif" height=13 width=13 align=absMiddle border=0>  <a href="Pro.asp?BigClassName=<%=rss("BigClassName")%>&Smallclassname=<%=rss("SmallClassName")%>"><%=rss("SmallClassName")%></a><BR>
<%
rss.movenext
j=j+1
loop
end if
rss.close
set rss=nothing
%>
</TD>
</TR>
<%
rsBigClass.movenext
i=i+1
loop
end if
%>

</TABLE>
&

非常感谢 362366724的回答。

你提供的答案能够使程序正常运行。

由于需要模板化。所以要将以上代码改成过程/函数:即放入Sub……end sub中

如果每行HTML代码前都使用Response.Write。文件会膨胀得很大。

不知还有没有更简洁的写法呢?

谢谢!
展开
 我来答
362366724
推荐于2016-09-26 · TA获得超过2498个赞
知道小有建树答主
回答量:784
采纳率:0%
帮助的人:903万
展开全部
改写有很多种方式,直接复制下面的,我已经改写好了,祝你成功!
楼主你好,如果加入sub过程的话,也很简单,代码如下
调用的时候直接说<%=xxxx()%>或者<%Response.write xxxx()%>
你放心,国内的知名CMS系统都是用的这种写法,既能够提高速度,还能提升ASP整体性能,你想想,服务器一直处理ASP,总比处理一句ASP马上换成出来一句HMTL语句好得多,在这个转换过程中,ASP绝对是提升性能力的,丝毫没有影响你的速度,代码的话,就算你用原来的可能是2KB,而现在最多3KB,只是多了一写输出语句而已,如果用Response.write"doctment.write('<table>....')"的话,是一种写法,但是代码还要多,而且还要从Asp转到javascript然后换成Html输出客户端,所以中和一下,下面的是最好的!调用也很简单,但是确保你调用的页面必须包含conn.asp文件,因为你下面建立了实例对象Rs.

<% '这里定义一个名为xxxx的sub过程
Sub xxxx()
'改写有多种方式,我现在用每行换行+Vbcrlf格式的给你写,因为他的速度最快
Response.Write "<SCRIPT language=javascript>" & vbCrLF
Response.Write " function opencat(cat,img){" & vbCrLF
Response.Write " if(cat.style.display=='none'){" & vbCrLF
Response.Write " cat.style.display='';" & vbCrLF
Response.Write " img.src='images/class2.gif';" & vbCrLF
Response.Write " } else {" & vbCrLF
Response.Write " cat.style.display='none'; " & vbCrLF
Response.Write " img.src='images/class1.gif';" & vbCrLF
Response.Write " }" & vbCrLF
Response.Write "}" & vbCrLF
Response.Write "</Script>" & vbCrLF
Response.Write "<TABLE cellSpacing='0' cellPadding='5' width='99%' border='0'>" & vbCrLF
Dim i
If rsBigClass.eof and rsBigClass.bof then
Response.Write "栏目正在建设中……"
else
i=1
do while not rsBigClass.eof
Response.Write " <TR>" & vbCrLF
Response.Write "<TD language=javascript onmouseup='opencat(cat10"&i&"000,img10"&i&"000);' id=item$pval[catID]) style='CURSOR: hand' width='32' height='24' align='center'>" & vbCrLF
Response.Write " <IMG id=img10"&i&"000 src='images/class1.gif' width='20' height='20'>" & vbCrLF
Response.Write "</TD>" & vbCrLF
Response.Write "<TD width='162'><a href='Pro.asp?BigClassName="&rsBigClass("BigClassName")&"'>"&rsBigClass("BigClassPic")&"</a></TD>" & vbCrLF
Response.Write " </TR>" & vbCrLF
Response.Write " <TR>" & vbCrLF
If BigClassName<>rsBigClass("BigClassName") then
Response.Write " <TD id=cat10" & i & "000 style=""DISPLAY"" colspan=2>" & vbCrLF
Else
Response.Write " <TD id=cat10" & i & "000 style='DISPLAY' colspan='2'>" & vbCrLF
End if
Dim rss,sqls,j
Set rss = server.CreateObject ("adodb.recordset")
sqls="select * from SmallClass where BigClassName='" & rsBigClass("BigClassName") & "' order by SmallClassID"
rss.open sqls,conn,1,1
If rss.Eof and rss.Bof then
Response.Write "没有小分类"
Else
j=1
Do while not rss.Eof
Response.Write "<IMG src='images/class3.gif' height='13' width='13' align='absMiddle' border='0'> <a href='Pro.asp?BigClassName="& rss("BigClassName") &"&Smallclassname="& rss("SmallClassName")&"'>"&rss("SmallClassName") & "</a><BR>" & vbCrLF
rss.movenext
j=j+1
loop
end if
rss.close
set rss=nothing

Response.Write " </TD>" & vbCrLF
Response.Write "</TR>" & vbCrLF
rsBigClass.movenext
i=i+1
loop
end if
Response.Write "</TABLE> " & vbCrLF
End sub
%>
乜帅红0Q
2010-02-02 · TA获得超过906个赞
知道小有建树答主
回答量:693
采纳率:100%
帮助的人:468万
展开全部
上面的就挺好的,如果把所有html代码写道vbscript中会很崩溃,光是数引号了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
什么什么在哪里
2010-02-02 · TA获得超过415个赞
知道小有建树答主
回答量:517
采纳率:0%
帮助的人:0
展开全部
去掉引号或者用 """双引号包含引号
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式