花了N久時間開發的ASP程序,在使用一段時間使用,公司又要對網站頁面的改版,所有的源程序都將進行一次移植手術。為此所耗費的人力精力不計其數,甚至一不小心得不償失、前功盡棄。
因為每天只改的是頁面,頁面上的版塊內容都不變,所以想找個簡單的方法解決,於是就想到了ASP模板功能:將大段的程序代碼變成幾個簡單的字符代替,這樣只要設計好頁面把該功能插入就OK了。其實這也簡單,只需將實現該功能的程序代碼做成子程序,然後主頁調用就可以了。
模板需要在線修改,則應采用數據庫保存模板代碼
所謂的模板,就是設計完工的標准的Html代碼,其中需要由程序實現的功能部分將采用特殊字符串代替。然,這些特殊字符串需要在顯示的時候被編譯為對應的功能。
1,設計數據庫testmb.mdb
新建表moban:字段m_id(自動編號,主關鍵字);字段m_Html(備注類型)
2,假設第一模板內容代碼
將下列代碼拷貝到m_Html字段中
01
<
Html
>
02
<
head
>
03
<
meta
http-equiv
=
"Content-Type"
content
=
"text/Html; charset=gb2312"
>
04
<
title
>testmb</
title
>
05
</
head
>
06
<
body
leftmargin
=
"0"
topmargin
=
"0"
>
07
<
table
width
=
"100%"
height
=
"100%"
border
=
"0"
cellpadding
=
"5"
cellspacing
=
"2"
>
08
<
tr
align
=
"right"
bgcolor
=
"#CCCCCC"
>
09
<
td
height
=
"20"
colspan
=
"2"
>$cntop$</
td
>
10
</
tr
>
11
<
tr
valign
=
"top"
>
12
<
td
width
=
"25%"
bgcolor
=
"#e5e5e5"
>$cnleft$</
td
>
13
<
td
width
=
"74%"
bgcolor
=
"#f3f3f3"
>$cnright$</
td
>
14
</
tr
>
15
</
table
>
16
</
body
>
17
</
Html
>
(鼠標移到代碼上去,在代碼的頂部會出現四個圖標,第一個是查看源代碼,第二個是復制代碼,第三個是打印代碼,第四個是幫助)注意$cntop$、$cnleft$、$cnright$,它們將要實現某些具體的程序功能
3,建立數據庫連接文件conn.ASP
1
<%
2
set conn= Server.CreateObject(
"ADODB.Connection"
)
3
connstr =
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
&Server.MapPath(
"testmb.mdb"
)
4
conn.Open connstr
5
%>
(鼠標移到代碼上去,在代碼的頂部會出現四個圖標,第一個是查看源代碼,第二個是復制代碼,第三個是打印代碼,第四個是幫助)4,建立特殊字符串轉換所需要的庫文件lib.ASP
該文件的主要作用是將實現某些功能的ASP程序做成字程序,以方便調用。
01
<%
02
dim topcode
03
sub cntop()
04
topcode=
"現在時間是:"
05
topcode=topcode&now()
06
end sub
07
08
dim leftcode,i
09
sub cnleft()
10
for i = 1 to 5
11
leftcode=leftcode&
"<p>cnbruce.com"
12
next
13
end sub
14
15
dim rightcode
16
sub cnright()
17
for i = 1 to 9
18
rightcode=rightcode&
"<hr color="
&i&i&i&i&i&i&
">"
19
next
20
end sub
21
%>
(鼠標移到代碼上去,在代碼的頂部會出現四個圖標,第一個是查看源代碼,第二個是復制代碼,第三個是打印代碼,第四個是幫助)5,最後,調用數據庫中的模板代碼,將特殊字符串轉換。
01
<!--#include file=
"conn.ASP"
-->
02
<!--#include file=
"lib.ASP"
-->
03
<%
04
sql=
"select * from moban where m_id=1"
05
set rs=Server.CreateObject(
"adodb.recordset"
)
06
rs.open sql,conn,1,1
07
mb_code=rs(
"m_Html"
)
08
rs.close
09
set rs=nothing
10
11
cntop()
12
mb_code=replace(mb_code,
"$cntop$"
,topcode)
13
cnleft()
14
mb_code=replace(mb_code,
"$cnleft$"
,leftcode)
15
cnright()
16
mb_code=replace(mb_code,
"$cnright$"
,rightcode)
17
18
response.write mb_code
19
%>
(鼠標移到代碼上去,在代碼的頂部會出現四個圖標,第一個是查看源代碼,第二個是復制代碼,第三個是打印代碼,第四個是幫助)該頁主要作用是將模板代碼進行顯示,並將其中的特殊代碼轉變為相對應子程序功能。
至此,ASP的模板功能基本完成,剩下的就是:建立具備編輯模板功能的程序頁面,將庫文件改變為自己所需要程序功能