分享
 
 
 

asp.net1.1 开发专用模板类

王朝asp·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

做web开发也有几年了。自己在不同的公司有不同的认识。最近做blog项目。自己认识到了模板类在web开发中的作用。自己晚上在家。总想可以做一个专门的为asp.ne开发而设计的模板类。于是就写了这个模板类。

下载地址点这

把下载下来的 500sea.txt 文件改名为 Templet.rar 文件打开就可以

如果打开

http://img.club.163.com/images/user/other/500sea

没有提示 500sea.txt文件下载。那就用网络快车等东西下这个地址

把下来的500sea.txt文件 改为 *.rar 文件就好

下面是里面的一个说明文件

//----------------------------------------------//

介绍:

此模板类是为三层架构web站点开发而编写的。StringTempletReplet.dll组件

内包含模板类。StringTempletReplet命名空间内的模板类可以使用在UI层,也可

以使用在逻辑层。

***************************************************************

运行方法:

建立一个名叫 Templet 的虚拟目录指象解压后的 Templet 文件夹

运行内部的 RetuenString.aspx,ReturnText.aspx,WriteArticon.aspx,

LongLoop.aspx 页面。在页面对应的cs文件上有相应说明。

第一次打开页面应为要保留委托对象和模板文件到缓存中,所以真正的速度要看第

一次以后的。

************************************************************

原理介绍:

一种标签替换的模板。使用了c#中的指针运算查找标签位置。

用委托对象指象标签对应的解析函数,并用静态对象缓存全部委托对象。

在不改变模板正文的情况下,缓存全部模板内容。可以动态更换模板。

************************************************************

标签介绍:

在成对特殊符号{$ 和 $} 之间的内容为标签

{$标签名:参数1:参数2:参数3::字符10$}

{$标签名:参数1:参数2::字节10$}

{$dt[5][name]$}

在标签内部通过 :: 符号把标签分为 (标签参数部分) 和 (命令控制部分) 两快

{$标签名:参数1:参数2:参数3::字节10$}

(标签参数部分) :: (命令控制部分)

在这两部分内以:号分割标签参数部分和命令控制部分

标签参数部分 ---第一个为标签名,就是标签解析函数的对应名称,以后的为函数的参数,

标签解析函数接受全部参数类型为string类型的,参数个数为0--20个的

函数,返回类型为string类型。参数可在标签上写死,也可以动态写入。

命令控制部分 ---现在只有两个命令符号 字符 和 字节 ,后带一个数字参数,表示截取标

签解析结果的长度, 如 字符10 字节10 。

我以后会在扩展其他的命令控制符号。

标签和函数对应请看Business.cs文件内说明

标签具体使用规则请看Templet/templet/aa1.htm模板内说明

具体调用规则请看项目中的这三个aspx页面

WriteArticon.aspx -- 读模板解析写入文件用于产生静态页面的新闻系统

ReturnText.aspx -- 读模板解析返回字符串用与写经常要改变外观的页面,

换皮肤的页面。可动态更换模板 。

RetuenString.aspx-- 接受标签字符串,返回解析结果。常用与ajax。

*************************************************************

标签动态取值:

标签解析函数除可以接受标签内传来的固定参数外。可以有三种方式接受动态参数

象模板类传递 Datatable 和 Hashtable 对象以后

(Datatable 从数据层获取 ,Hashtable 一般是页面变量 和其他变量)

1。 dt[5][name] ---- 表示取Datatable内5行name列上的数值,第一个为数字,

第二个是列名

2。 dt[name] ---- 在loop循环外表示取Datatable内0行name列上的数值,

一个参数表示列名

---- 在loop循环内表示取Datatable内name列上的数值,取那

些行通过loop标签的参数决定

3。 page[PageId] ----- 表示取Hashtable对象内PageId键上的数值,返回string类型

如 {$二个参数书签:dt[3][word]:page[UserId]::字符10$}

{$dt[5][name]$} {$dt[name]$} {$page[PageId]$}

{$dt[5][name]::字符10$} {$dt[name]::字符10$} {$page[PageId]::字符10$}

这样的标签表示直接在页面上显示对象内的数值

************************************************************

页面或类内调用模板类方法:

可在页面或类内调用

产生对象,关联对应标签函数解析类

//在这里我门只要在这一行后面 new Business() 一个Business类对象就可以了

//用接口实现多态,代码看起来有点麻烦。 自己用的时候只要修改最后一个"new Business()" 为自己的包含标签解析函数的类就可以了

ILabelAnalyStart objILabel=(ILabelAnalyStart) new TempletReplet(new Business());

//读模板路径属性

objILabel.ReadFilePath=this.Server.MapPath("templet/aa1.htm");

//写文件路径属性

objILabel.WritFilePath=this.Server.MapPath("page/aa1.html");

//获取数据表对象

objILabel.LabelDatatable=ds.Tables[0];

//把这个页面上的变量用Hashtable对象传近模板类

objILabel.LabelHashtable=ht;

然后可以实现三种替换

//开始替换写模板

objILabel.LaberReplet();

//返回解析结果

string aa=objILabel.LaberRepletText();

//返回解析结果,这个是直接接受模板字符串的,具体看RetuenString.cs文件

string aa=objILabel.LaberRepletString();

详细可看这三个文件的cs文件

WriteArticon.aspx -- 读模板解析写入文件 用于产生静态页面的新闻系统

ReturnText.aspx -- 读模板解析返回字符串 用与写经常要改变外观的页面

换皮肤的页面

RetuenString.aspx-- 接受标签字符串返回解析结果。常用与ajax

*********************************************************

标签函数关联:

具体详细请看 Business.cs 文件

在逻辑层对应的类的静态构造器内,加如下代码。

//调用静态构造器,把标签执行函数委托放到静态哈希表内

//必须执行这个方法

static Business()

{

Business _this=new Business();

FunctionList.objFunctionHashtable.Add("无参书签",new KeyItemDelegate(new UserDelegate.Run_0(_this.show),0));

FunctionList.objFunctionHashtable.Add("一个参数书签",new KeyItemDelegate(new UserDelegate.Run_1(_this.tag),1));

FunctionList.objFunctionHashtable.Add("二个参数书签",new KeyItemDelegate(new UserDelegate.Run_2(_this.tag_two),2));

//书签和执行函数关联。放到书签解析类的静态构造函数内。是为了可以完全使用内存中的对象,不每次都执行

[1] [2] 下一页

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有