模板循环输出标签和循环类应该如何写

liberty88 2008-04-08 04:15:36
我想把网站改成模板的,在改产品页遇到一个问题,请大家指教,
因产品是循环输出的,所以不能使用单个标签替换,想请问大家我,应该如何去写这个标签呢,而类又应该如何实现呢,因初次用模板标签做网站,所以,说得越详细越好,谢谢!
...全文
55 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
逆我者变驴 2008-04-09
  • 打赏
  • 举报
回复
我也想知道,循环输出的地方要怎么写
逆我者变驴 2008-04-09
  • 打赏
  • 举报
回复
路过的如果有更好的方法,请一定发出来啊
逆我者变驴 2008-04-09
  • 打赏
  • 举报
回复
模板页:template.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>
<body>
<table width="350" border="0" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
<tr>
<td width="80" bgcolor="#F3F3F3">编号</td>
<td bgcolor="#F3F3F3">标题</td>
</tr>
{$NewsCirculationStart$}
<tr>
<td width="80" bgcolor="#FFFFFF">{$NewsNumber$}</td>
<td bgcolor="#FFFFFF">{$NewsTitle$}</td>
</tr>
{$NewsCirculationEnd$}
</table>
</body>
</html>


处理页:transact.asp

<%
function ReadFromTextFile (FileUrl,CharSet)
dim str
set stm=server.CreateObject("adodb.stream")
stm.Type=2 '以本模式读取
stm.mode=3
stm.charset=CharSet
stm.open
stm.loadfromfile server.MapPath(FileUrl)
str=stm.readtext
stm.Close
set stm=nothing
ReadFromTextFile=str
end function

Sub WriteToTextFile (FileUrl,byval Str,CharSet)
set stm=server.CreateObject("adodb.stream")
stm.Type=2 '以本模式读取
stm.mode=3
stm.charset=CharSet
stm.open
stm.WriteText str
stm.SaveToFile server.MapPath(FileUrl),2
stm.flush
stm.Close
set stm=nothing
end Sub
'以上函数从网上搜的
'-----------------------------------------------------------------------

'函数:GetBetweenString
'作用:在字符串SStr中获取Str_1到Str_2之间的字符串
function GetBetweenString(SStr,Str_1,Str_2)
Dim CenterStr,RightStr
RightStr =right(SStr,len(SStr)-instr(SStr,Str_1)-len(Str_1)+1)
CenterStr =left(RightStr,instr(RightStr,Str_2)-1)
GetBetweenString=CenterStr
end function

Dim TemplateStr,Str1,Str2,Str3,Str4,Str5,PrintStr
TemplateStr=ReadFromTextFile ("template.html","UTF-8")
Str1=left(TemplateStr,instr(TemplateStr,"{$NewsCirculationStart$}")-1)
Str2=GetBetweenString(TemplateStr,"{$NewsCirculationStart$}","{$NewsNumber$}")
Str3=GetBetweenString(TemplateStr,"{$NewsNumber$}","{$NewsTitle$}")
Str4=GetBetweenString(TemplateStr,"{$NewsTitle$}","{$NewsCirculationEnd$}")
Str5=right(TemplateStr,len(TemplateStr)-instr(TemplateStr,"{$NewsCirculationEnd$}")-len("{$NewsCirculationEnd$}")+1)
'这里可以换成从数据库中读取的内容
PrintStr=Str1
for i=1 to 10
PrintStr=PrintStr&Str2&i&Str3&"这里是新闻标题["&i&"]"&Str4
next
PrintStr=PrintStr&Str5
call WriteToTextFile ("test.html",PrintStr,"UTF-8")
response.Write("<a href=""test.html"" target=""_blank"">查看文件</a>")
%>


编码:UTF-8
包括Unicode签名(BOM)
逆我者变驴 2008-04-09
  • 打赏
  • 举报
回复
哈哈
我弄出来了

模板页:
<table width="350" border="0" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
<tr>
<td width="80" bgcolor="#F3F3F3">编号</td>
<td bgcolor="#F3F3F3">标题</td>
</tr>
{$NewsCirculationStart$}
<tr>
<td width="80" bgcolor="#FFFFFF">{$NewsNumber$}</td>
<td bgcolor="#FFFFFF">{$NewsTitle$}</td>
</tr>
{$NewsCirculationEnd$}
</table>

然后有个处理页:
该页面读取模板内容后将标签分隔的HTML分别赋值给一些临时定义的变量
然后你再根据需要加上你要显示的内容,重新组合
组合完成后写入到一个页面中
liberty88 2008-04-08
  • 打赏
  • 举报
回复
晕哦,有人来说一下没啊

28,391

社区成员

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

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