| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 877 人关注过本帖
标题:[原创]asp 的 Template 技术,使得程序与界面设计分离
取消只看楼主 加入收藏
rainic
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:2367
专家分:0
注 册:2005-8-9
收藏
 问题点数:0 回复次数:2 
[原创]asp 的 Template 技术,使得程序与界面设计分离

<%
'######## Class Template ##########
'BY RAINIC
'Author: James Chan
'Date: feb 13 2006
'说明:asp 的 Template 技术(我在php的Template技术中找到灵感)
' 使用这种技术,可以使程序与界面设计分离
' 还可以生成网页文件(静态html、动态都可以)
'##################################
'使用方法
'例如:test.asp的代码如下
' Set html=New Template
' call html.readfile("test.html")
' call html.fill_var("title","ASP Template") '替换模板文件中的“变量”(“{}”中的为变量)
' call html.fill_var("content","这是 asp 的 Template 技术。<br>")
' call html.print() '显示模板代码
' 'call html.Createfile("/",".html")   '创建文件,生成的文件夹和文件将放在"/"中,文件扩展名为".html"
'
' 以下是模板test.html的代码
' <body>
' <h3>{title}</h3>
' <hr>
' {content}
' </body>
'
' 运行test.asp看结果怎样

Class Template

Private temp_content
Private fso

Private Sub Class_Initialize
temp_content=""
Set fso=Server.CreateObject("Scripting.FileSystemObject")
End Sub

'生成文件,这里temp_path为相对目录,生成的文件夹和文件将放在temp_path中,filetype为文件的扩展名
Public Sub Createfile(temp_path,filetype)
folder_Rpath = CreateFolder(temp_path)
file_Rpath = folder_Rpath & "/" & CreateName(filetype)
Set myfile=fso.CreateTextFile(file_Rpath)
myfile.Write(temp_content)
myfile.Close
set myfile=nothing
End Sub

Private Function CreateFolder(temp_path) '以当天日期生成文件夹! 并返回文件夹的绝对路径
FolderName = FormatDateTime(date(),vbShortDate)
folder_Rpath = server.MapPath(temp_path&FolderName)
if not fso.FolderExists(folder_Rpath) then
fso.CreateFolder(folder_Rpath)
end if
CreateFolder = folder_Rpath
End Function

Private Function CreateName(filetype) '生成文件名
CreateName = CStr(DateDiff("s",date(),now())) & filetype
End Function

Public Sub fill_var(filled_var,fill_content)
temp_content = replace(temp_content,"{"&filled_var&"}",fill_content)
End Sub

Public Sub print()
response.Write(temp_content)
End Sub

Public Sub readfile(Template_path) '从模板文件读出html代码
Set MyTextFile=fso.OpenTextFile(Server.MapPath(Template_path))
temp_content=MyTextFile.ReadAll
MyTextFile.Close
set MyTextFile=nothing
End Sub

End Class
%>

[此贴子已经被作者于2006-2-13 14:36:33编辑过]

搜索更多相关主题的帖子: Template 界面 asp 技术 
2006-02-13 13:06
rainic
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:2367
专家分:0
注 册:2005-8-9
收藏
得分:0 

是我原创的,
楼上的说单调,我没觉得,复杂的页面也一样可以用
不用fso还可以用什么?
你有别的办法吗?你开发出来啦?

没人欣赏,自己用


2006-02-13 18:12
rainic
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:2367
专家分:0
注 册:2005-8-9
收藏
得分:0 
哦,不过用ADODB.Stream上传文件的时候很奇怪的,如果被上传文件在桌面上,就会上传失败,之前有个网友说的,我也试了,情况和他说的一样

2006-02-13 21:48
快速回复:[原创]asp 的 Template 技术,使得程序与界面设计分离
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017506 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved