此類支持循環替換,支持嵌套循環替換,支持多模板。
類的代碼就不貼不來啰嗦了,在后面有下載,只貼出demo的代碼。
一、模板只有一個循環塊
模板文件主要代碼
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>{myname}模板-{webName}</title>
</head>
<body>
<table width="500" border="0" cellspacing="0" cellpadding="0">
<!-- begin a_block -->
<tr>
<td width="50" height="30">第一列</td>
<td width="50" height="30">{tpl_1}</td>
<td width="50" height="30">{tpl_2}</td>
</tr>
<!-- end a_block -->
</table>
</body>
替換模板的代碼
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<!--#include file="tplCls.asp"-->
<%
response.Charset="utf-8"
set newTpl=new tpl
newTpl.setTpl="tpl.html"
newTpl.setVar "myname","一個塊循環的"
newTpl.setVar "webName","亮亮的博客"
newTpl.setBlock="a_block"
for tt=0 to 2
newTpl.setBloVar "tpl_1","第二列_"&tt
newTpl.setBloVar "tpl_2","第三列_"&tt
newTpl.outBloVar
next
newTpl.outBlock "a_block"
newTpl.out
set newTpl=nothing
%>
二、兩個塊循環,并且在一個模板中加載另一個模板
主模板文件主要代碼
<title>{myname}模板-{webName}</title>
</head>
<body>
<table cellspacing="2" border="1">
<tr><td>下面的動物您喜歡哪一種</td></tr>
<!-- begin list1 -->
<tr><td><input type="radio" name="chk">{animal}</td></tr>
<tr bgcolor="#3366FF"><td height="10"></td>
</tr>
<!-- end list1 -->
<!-- begin list2 -->
<tr><td><input type="radio" name="chk">{animal2}</td></tr>
<tr bgcolor="#3366FF"><td height="10"></td>
</tr>
<!-- end list2 -->
<tr><td colspan="2">{PageNo}</td></tr>
</table>
</body>
副模板文件主要代碼
<table width="500" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="30">這是嵌套進來的模板</td>
</tr>
<tr>
<td height="30"><!-- begin inList -->{inStr} <!-- end inList --></td>
</tr>
</table>
替換模板的代碼
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<!--#include file="tplCls.asp"-->
<%
response.Charset="utf-8"
set newTpl=new tpl
newTpl.setTpl="tpl2.html"
newTpl.setVar "myname","兩個塊循環/嵌套的"
newTpl.setVar "webName","亮亮的博客"
newTpl.setBlock="list1"
for i=0 to 2
newTpl.setBloVar "animal","animal"&i
newTpl.outBloVar
next
newTpl.outBlock "list1"
newTpl.setBlock="list2"
for m=0 to 2
newTpl.setBloVar "animal2","動物"&m
newTpl.outBloVar
next
newTpl.outBlock "list2"
'加載副模板
newTpl.setVarTpl "PageNo","inTpl.html"
'替換副模板中的內容
newTpl.setBlock="inList"
for k=0 to 3
newTpl.setBloVar "inStr","menu"&k
newTpl.outBloVar
next
newTpl.outBlock "inList"
newTpl.out
set newTpl=nothing
%>
三、塊里有嵌套的循環
模板文件主要代碼
<title>{myname}模板-{webName}</title>
</head>
<body>
<table width="400" border="1" bordercolor="#000000">
<tr><td><div align="center">{myname}測試</div></td></tr>
<tr><td>動物:</td> </tr>
<!-- begin list -->
<tr><td>{animal}</td></tr>
<!-- begin list_1 -->
<tr><td> {plant}_{num}</td></tr>
<!-- begin list_1_1 -->
<tr><td> {plant2}</td></tr>
<!-- end list_1_1 -->
<!-- end list_1 -->
<!-- end list -->
</table>
</body>
替換模板文件的代碼
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<!--#include file="tplCls.asp"-->
<%
response.Charset="utf-8"
set newTpl=new tpl
newTpl.setTpl="tpl3.html"
newTpl.setVar "myname","嵌套循環的"
newTpl.setVar "webName","亮亮的博客"
newTpl.setBlock="list"
for i=0 to 2
newTpl.setBloVar "animal","動物大類"&i
newTpl.outBloVar
newTpl.setBlock="list_1"
for m=0 to 2
newTpl.setBloVar "plant","動物類"
newTpl.setBloVar "num",m
newTpl.outBloVar
newTpl.setBlock="list_1_1"
for k=0 to 1
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
set newTpl=nothing
%>
注意resetBlock使用的地方,在塊里還有循環的時候,在next之前用這個方法。
四、模板里有循環塊沒有單變量
模板文件主要代碼
<title>模板-{webName}</title>
</head>
<body>
<table width="400" border="1" bordercolor="#000000">
<tr><td><div align="center">{myname}測試</div></td></tr>
<tr><td>看看測試</td> </tr>
<!-- begin list -->
<tr><td>{animal}</td></tr>
<!-- begin list_1 -->
<tr><td> <!-- begin list_1_1 --> {plant} <!-- end list_1_1 --></td></tr>
<!-- end list_1 -->
<tr><td>{animal2}</td></tr>
<!-- end list -->
<tr><td><div align="center">{myname2}</div></td></tr>
</table>
</body>
注意在list_1塊中沒有像在list塊中的animal這樣的要替換的單變量
替換模板的代碼
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<!--#include file="tplCls.asp"-->
<%
response.Charset="utf-8"
set newTpl=new tpl
newTpl.setTpl="tpl4.html"
newTpl.setVar "myname","有一個塊沒有變量要替換的嵌套循環的"
newTpl.setVar "webName","亮亮的博客"
newTpl.setBlock="list"
for i=0 to 2
newTpl.setBloVar "animal","動物類別_"&i
newTpl.setBloVar "animal2","動物類別_"&i&"結束"
newTpl.outBloVar
newTpl.setBlock="list_1"
for m=0 to 2
'list_1塊里沒有單變量要替換也要執行setBloVar和outBloVar,參數用空代替
newTpl.setBloVar "",""
newTpl.outBloVar
newTpl.setBlock="list_1_1"
for k=0 to 1
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
set newTpl=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
功能不錯的asp模板類代碼附下載
2019-09-23 10:14asp代碼網 ASP教程
在工作中,因為要用模板類,在網上找了個asp模板類,用著挺好了。完工后也按別人的思路寫了模板類,這個模板類沒在設計的項目中應用,只是練練筆,所以只寫了簡單的幾個demo,有沒有bug還
延伸 · 閱讀
- 2024-12-13小米 Vela 系統代碼正式開源,OpenVela 上線 GitHub
- 2024-12-13篡改代碼并攻擊大模型,前實習生被字節跳動起
- 2024-12-13《暗黑破壞神2:重制版》添加wasd移動功能 結果
- 2024-12-13Windows 版網絡備份工具 NetBackup 曝提權漏洞,黑客
- 2024-12-13蘋果 tvOS 18.2 隱藏代碼顯示 Apple TV 將獲得史努比
- 2024-11-06AMD用戶有福了!幾行代碼讓FSR2性能暴漲228%
- ASP教程
asp之基于adodb.stream的文件操作類
asp之基于adodb.stream的文件操作類...
- ASP教程
ASP.NET 數據源
數據源 一個 data sourse 控件與數據綁定的控件相互作用,并隱藏了復雜的數據的聯編過程。這些是提供數據給 data bound 控件的工具,并且支持如插入,刪除...
- ASP教程
asp 采集實戰代碼
最近實在是太流行采集了,本人是不喜歡采集的,但對采集的原理我卻很有興趣進行研究,拿到了網上采集常用函數,對其進行了一番研究,并實戰,結果...
- ASP教程
asp+javascript實現404頁的處理轉換
asp+javascript實現404頁的處理轉換...
- ASP教程
JScript中遍歷Request表單參數集合的方法
這篇文章主要介紹了JScript中遍歷Request表單參數集合的方法,本文以遍歷Request.QueryString集合為例給出了實現代碼,需要的朋友可以參考下...
- ASP教程
asp Access數據備份,還原,壓縮類代碼
asp Access數據備份,還原,壓縮類實現代碼,大家可以參考下。...
- ASP教程
ASP常用函數:getpy()
ASP常用函數:getpy()...
- ASP教程
asp 標記字符串中指定字符變色不區分大小寫
今天遇到這種問題,單純的使用replace函數不行,他會改變原有的字符串的大小寫,在網上找到相關的代碼,自己備份下...