此类支持循环替换,支持嵌套循环替换,支持多模板。
类的代码就不贴不来啰嗦了,在后面有下载,只贴出demo的代码。
一、模板只有一个循环块
模板文件主要代码
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/>
<title>{myname}模板-{webName}</title>
</head>
<body>
<tablewidth="500"border="0"cellspacing="0"cellpadding="0">
<!–begina_block–>
<tr>
<tdwidth="50"height="30">第一列</td>
<tdwidth="50"height="30">{tpl_1}</td>
<tdwidth="50"height="30">{tpl_2}</td>
</tr>
<!–enda_block–>
</table>
</body>
替换模板的代码
<%@LANGUAGE="VBSCRIPT"CODEPAGE="65001"%>
<!–#includefile="tplCls.asp"–>
<%
response.Charset="utf-8"
setnewTpl=newtpl
newTpl.setTpl="tpl.html"
newTpl.setVar"myname","一个块循环的"
newTpl.setVar"webName","亮亮的博客"
newTpl.setBlock="a_block"
fortt=0to2
newTpl.setBloVar"tpl_1","第二列_"&tt
newTpl.setBloVar"tpl_2","第三列_"&tt
newTpl.outBloVar
next
newTpl.outBlock"a_block"
newTpl.out
setnewTpl=nothing
%>
二、两个块循环,并且在一个模板中加载另一个模板
主模板文件主要代码
<title>{myname}模板-{webName}</title>
</head>
<body>
<tablecellspacing="2"border="1">
<tr><td>下面的动物您喜欢哪一种</td></tr>
<!–beginlist1–>
<tr><td><inputtype="radio"name="chk">{animal}</td></tr>
<trbgcolor="#3366FF"><tdheight="10"></td>
</tr>
<!–endlist1–>
<!–beginlist2–>
<tr><td><inputtype="radio"name="chk">{animal2}</td></tr>
<trbgcolor="#3366FF"><tdheight="10"></td>
</tr>
<!–endlist2–>
<tr><tdcolspan="2">{PageNo}</td></tr>
</table>
</body>
副模板文件主要代码
<tablewidth="500"border="0"cellspacing="0"cellpadding="0">
<tr>
<tdheight="30">这是嵌套进来的模板</td>
</tr>
<tr>
<tdheight="30"><!–begininList–>{inStr}<!–endinList–></td>
</tr>
</table>
替换模板的代码
<%@LANGUAGE="VBSCRIPT"CODEPAGE="65001"%>
<!–#includefile="tplCls.asp"–>
<%
response.Charset="utf-8"
setnewTpl=newtpl
newTpl.setTpl="tpl2.html"
newTpl.setVar"myname","两个块循环/嵌套的"
newTpl.setVar"webName","亮亮的博客"
newTpl.setBlock="list1"
fori=0to2
newTpl.setBloVar"animal","animal"&i
newTpl.outBloVar
next
newTpl.outBlock"list1"
newTpl.setBlock="list2"
form=0to2
newTpl.setBloVar"animal2","动物"&m
newTpl.outBloVar
next
newTpl.outBlock"list2"
'加载副模板
newTpl.setVarTpl"PageNo","inTpl.html"
'替换副模板中的内容
newTpl.setBlock="inList"
fork=0to3
newTpl.setBloVar"inStr","menu"&k
newTpl.outBloVar
next
newTpl.outBlock"inList"
newTpl.out
setnewTpl=nothing
%>
三、块里有嵌套的循环
模板文件主要代码
<title>{myname}模板-{webName}</title>
</head>
<body>
<tablewidth="400"border="1"bordercolor="#000000">
<tr><td><divalign="center">{myname}测试</div></td></tr>
<tr><td>动物:</td></tr>
<!–beginlist–>
<tr><td>{animal}</td></tr>
<!–beginlist_1–>
<tr><td>{plant}_{num}</td></tr>
<!–beginlist_1_1–>
<tr><td>{plant2}</td></tr>
<!–endlist_1_1–>
<!–endlist_1–>
<!–endlist–>
</table>
</body>
替换模板文件的代码
<%@LANGUAGE="VBSCRIPT"CODEPAGE="65001"%>
<!–#includefile="tplCls.asp"–>
<%
response.Charset="utf-8"
setnewTpl=newtpl
newTpl.setTpl="tpl3.html"
newTpl.setVar"myname","嵌套循环的"
newTpl.setVar"webName","亮亮的博客"
newTpl.setBlock="list"
fori=0to2
newTpl.setBloVar"animal","动物大类"&i
newTpl.outBloVar
newTpl.setBlock="list_1"
form=0to2
newTpl.setBloVar"plant","动物类"
newTpl.setBloVar"num",m
newTpl.outBloVar
newTpl.setBlock="list_1_1"
fork=0to1
newTpl.setBloVar"plant2","动物"&k
newTpl.outBloVar
next
newTpl.outInBlock"list_1","list_1_1"
newTpl.resetBlock="list_1"
next
newTpl.outInBlock"list","list_1"
'注意resetBlock的使用
newTpl.resetBlock="list"
next
newTpl.outBlock"list"
newTpl.out
setnewTpl=nothing
%>
注意resetBlock使用的地方,在块里还有循环的时候,在next之前用这个方法。
四、模板里有循环块没有单变量
模板文件主要代码
<title>模板-{webName}</title>
</head>
<body>
<tablewidth="400"border="1"bordercolor="#000000">
<tr><td><divalign="center">{myname}测试</div></td></tr>
<tr><td>看看测试</td></tr>
<!–beginlist–>
<tr><td>{animal}</td></tr>
<!–beginlist_1–>
<tr><td><!–beginlist_1_1–>{plant}<!–endlist_1_1–></td></tr>
<!–endlist_1–>
<tr><td>{animal2}</td></tr>
<!–endlist–>
<tr><td><divalign="center">{myname2}</div></td></tr>
</table>
</body>
注意在list_1块中没有像在list块中的animal这样的要替换的单变量
替换模板的代码
<%@LANGUAGE="VBSCRIPT"CODEPAGE="65001"%>
<!–#includefile="tplCls.asp"–>
<%
response.Charset="utf-8"
setnewTpl=newtpl
newTpl.setTpl="tpl4.html"
newTpl.setVar"myname","有一个块没有变量要替换的嵌套循环的"
newTpl.setVar"webName","亮亮的博客"
newTpl.setBlock="list"
fori=0to2
newTpl.setBloVar"animal","动物类别_"&i
newTpl.setBloVar"animal2","动物类别_"&i&"结束"
newTpl.outBloVar
newTpl.setBlock="list_1"
form=0to2
'list_1块里没有单变量要替换也要执行setBloVar和outBloVar,参数用空代替
newTpl.setBloVar"",""
newTpl.outBloVar
newTpl.setBlock="list_1_1"
fork=0to1
newTpl.setBloVar"plant","动物"&k
newTpl.outBloVar
next
newTpl.outInBlock"list_1","list_1_1"
newTpl.resetBlock="list_1"
next
newTpl.outInBlock"list","list_1"
newTpl.resetBlock="list"
next
newTpl.outBlock"list"
newTpl.setVar"myname2","测试结束"
newTpl.out
setnewTpl=nothing
%>
最后介绍一下类里的主要方法
newTpl.setTpl="tpl.html"设置主要模板文件
newTpl.setVar"myname","一个块循环的"替换模板文件中块之外的变量
newTpl.setVarTpl"PageNo","inTpl.html"用副模板文件替换单变量即加载副模板
newTpl.setBloVar"tpl_2","第三列_"&tt替换块里的变量
newTpl.outBloVar输入块里所有替换后的内容
newTpl.setBlock="a_block"设置循环快
newTpl.outBlock"a_block"输出循环块
newTpl.out输出所有
newTpl.resetBlock="list"这是个比较特殊的,若list块里还有要循环的块,在循环list块的代码的next之前要用它。
asp_tplClass.rar
相关文章
猜你喜欢
- 个人服务器网站搭建:如何选择合适的服务器提供商? 2025-06-10
- ASP.NET自助建站系统中如何实现多语言支持? 2025-06-10
- 64M VPS建站:如何选择最适合的网站建设平台? 2025-06-10
- ASP.NET本地开发时常见的配置错误及解决方法? 2025-06-10
- ASP.NET自助建站系统的数据库备份与恢复操作指南 2025-06-10