新闻系统之模板机制

新闻系统之模板机制

新闻系统之模板机制

我们在做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字段,用于保存该分类的模板文件。

识别判断的程序如下:


public partial class news_list : Sper.baseuser

{

public string cid = "0";

protected override void 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/c34/page1.html

http://www.21nm.net/html/c23/page1.html

http://www.21nm.net/html/c17/page1.html

以上三个链接你可以看到,格式是一样的。只是分类不一样。列表的效果却不一样。

在园子的处女技术文章,欢迎大家拍砖。

原文地址:https://www.cnblogs.com/barney/p/1308943.html