新闻系统(1)之模板机制


新闻系统之模板机制
我们在做 cms,bbs, 或者多用户商城的时候,都会遇到模板机制。现在大多系统采用的都是老办法,做一个 html 文件,里面加上变量,再用一支程序读出这个 html ,替换里面的变量,输出要显示的内容。这个办法当然不错,因为很多人都在用嘛。
但是,在 asp.net 下,更好的实现却不是这样做。 iwms 新闻系统虽然没有开源,但是根据其模板的置放方式就能看出, iwms 采用的绝对不是这样一个办法。在 asp.net 中,代码也页面本来就是分开的,简单来讲, aspx 文件也就是一个模板, cs 文件负责程序逻辑。经过多年的发展,我们可以看到, asp.net 这种模板机制是很有效果的。代码的分离使得代码更清晰,程序员和美工的工作更容易配合。那么我们怎么利用 asp,net 的这种模板机制建立我们的多模板效果呢。
简单来讲,一个 aspx 文件是通过其顶部的配置文件链接到相应的程序文件的。
比如 news_list_main.aspx 文件的链接。
<% @ Page Language="C#" AutoEventWireup="true" CodeFile="news_list_main.aspx.cs" Inherits="news_list_main" %>
其实我们还可以在另外一个aspx文件中也使用这个连接
比如在 news_list_001.aspx 中也使用这样的链接。
那么两个页面的内部程序是一样的,根据自己的不同需求调整版面就可以实现不同的显示效果了。

到这里工作并没有完成。因为虽然显示效果不一样,但是却不是在同一个页面上显示的。我们可以做一个跳转中心。
news_list.aspx--news_list.aspx.cs
news_list.aspx 中只有一行代码
<% @ Page Language="C#" AutoEventWireup="true" CodeFile="news_list.aspx.cs" Inherits="news_list" Title="Untitled Page" %>
我以上是新闻列表的页面。我们事先在新闻分类的数据库中增加了一个 templets_List 字段,用于保存该分类的模板文件。
识别判断的程序如下:
 
Codepartialclass news_list : Sper.baseuser

{

publicstring cid ="0";

protectedoverridevoid Page_Load(object sender, EventArgs e)

{

base.Page_Load(sender, e);

if (!IsPostBack)

{

if (PageValidate.IsNumber(Request.QueryString["cid"]))

{

cid
= Request.QueryString["cid"];

string templets_List = navdt.Select("id="+ cid)[0]["templets_List"].ToString();

bool hast = templets_List !="";

if (hast)

{

string tourl = templets_List +"?cid="+ cid;

if (Request.QueryString["page"] !=null)

{

tourl
+="&page="+ Request.QueryString["page"];

}

//Response.Write(tourl);



//Server.

//Thread.Sleep(3000);

//Server.

Server.Transfer(tourl,
false);



}

else

{

string tourl ="news_list_main.aspx?cid="+ cid;

if (Request.QueryString["page"] !=null)

{

tourl
+="&page="+ Request.QueryString["page"];

}

Server.Transfer(tourl,
false);



}



}

}

}



}

 
到此,我们的模板机制就完成了。你要新添加模板的时候。只需要复制一个 news_list_main.aspx 文件,重命名后,修改里面的呈现效果就行了,在里面你可以任意调整布局,控件选择,新增加控件等。
效果演示
http://www.21nm.net/html/c17/page1.html
以上三个链接你可以看到,格式是一样的。只是分类不一样。列表的效果却不一样。
原代码下载地址 http://www.webabc.com.cn/
在园子的处女技术文章,欢迎大家拍砖。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值