zoukankan      html  css  js  c++  java
  • 新闻系统之模板机制

    新闻系统之模板机制

    新闻系统之模板机制

    我们在做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

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

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

  • 相关阅读:
    关于链表的一个小程序
    位操作
    结构和其他数据形式
    存储类、链接、内存管理
    文件输入/输出
    为什么返回IEnumerbale而不是List
    EncType
    script标签不能闭合
    jqueryUI AutoCompelete
    ChangeType
  • 原文地址:https://www.cnblogs.com/barney/p/1308943.html
Copyright © 2011-2022 走看看