自己动手做博客之日志管理-2.2 模板页

原创 2007年10月09日 13:12:00
    VS.NET 2005中提供了ASP.NET 2.0核心框架,ASP.NET 2.0改进了以往版本对网页设计方面支持上的不足,新增和增强了很多的功能,其中母版页控件就是一例。
    将母版页称为页面模板或许更容易理解它的作用,母版页中包含的是页面公共部分,即网页模板。母版页提供了开发人员已通过传统方式创建的功能,这些传统方式包括重复复制现有代码、文本和控件元素;使用框架集;对通用元素使用包含文件;使用ASP.NET用户控件等。母版页具有下面的优点:

l         使用母版页可以集中处理页的通用功能,以便可以只在一个位置上进行更新。

l         使用母版页可以方便地创建一组控件和代码,并将结果应用于一组页。例如,可以在母版页上使用控件来创建一个应用于所有页的菜单。

l         通过允许控制占位符控件的呈现方式,母版页使您可以在细节上控制最终页的布局。

l         母版页提供一个对象模型,使用该对象模型可以从各个内容页自定义母版页。

    母版页实际由两部分组成,即母版页本身与一个或多个内容页。采用母版页制作的网站都含有两种文件:一种是母版页,一种是内容页。母版页的后缀为.master,里面封装页面的公共元素;内容页的后缀为.aspx,就是普通的aspx页面,里面包含了除母版页外的其他公共内容。在运行时,ASP.NET 2.0引擎会将两种页面合并再发到客户端的浏览器。
    常见的母版页结构如图1-1所示。

1-1 母版页结构
    从上图所示的效果可以看出,在母版页中包含了两个ContentPlaceHolder控件,这是母版页上使用的占位控件。如果要想母版页的某一区域可编辑,拖动该控件到该位置即可。但是,需要注意的是母版页中的ContentPlaceHolder控件的ID属性必须与内容页中Content控件的ContentPlaceHolderID属性绑定。
    在Web项目的【解决方案资源管理器】窗格中右击项目名称选择【添加新项】命令,在弹出的【添加新项】对话框中选择【母版页】项,再单击【确定】按钮添加一个名为MasterPage.master的母版页到项目中。
切换至【源】视图,我们会发现母版页除了头部声明与普通的aspx页面不同外,代码结构上与普通的aspx页面并没有什么差别。
    了解了以上预备知识之后,接下来开始使用母版页对系统进行布局。

1-2 使用母版页的系统
    如图1-2所示为经过设计后母版页中的系统,可以很明显看出包含了一个ContentPlaceHolder控件,也就是说只有一个区域是可改变的。
    由于在母版页中的内容是全局的,因此在图1-2所示的系统布局可以看到将博客的名称、导航链接和常用功能都固定在母版页中。这其中包含一些需要从数据库中读取来显示的信息,例如,系统中包含的文章数量和评论的数量等。
    母版页与普通的ASPX页面一样,可以在后台文件中编写代码。在本系统中的母版页布局中包含有如下的语句:
<div id="nav_r">

 <%=LogCount%>篇文章,<%=CommentCount%>篇评论, 当前日期:<%=DateTime.Now.ToString()%>

</div>
    这些数据是要使用数据库的,需要在后台中通过编写代码操作数据库获取结果。双击打开MasterPage.master.cs文件,引用如下两个数据库所需的命名空间:
using System.Data.Sql;
using System.Data.SqlClient;
    先为页面声明两个全局变量,这两个变量的名称与前台布局中的必须相同,然后在页面载入过程Page_Load添加语句,如下所示:

 public string LogCount, CommentCount;

 protected void Page_Load(object sender, EventArgs e)

 {

      if (!IsPostBack)

     {

         getLogCount();//获取日志数量

         getCommentCount();//获取评论数量

     }
}
    其中IsPostBack是用来判断是第一次浏览该页,还是单击【刷新】按钮载入的页面。如果是第一次则调用getLogCount方法和getCommentCount方法。
    getLogCount方法用于获取日志的数量,通过数据库分析得知,这个值需要对info表进行操作,如下所示为这个方法的代码:

 void getLogCount() {

      string strsql = "select count(id) as logCount from info";

      dbconfig dbconn = new dbconfig();

      SqlCommand cmd = new SqlCommand(strsql, dbconn.conn);

      SqlDataReader dr = cmd.ExecuteReader();

      if (dr.Read()) {

          LogCount = dr["logCount"].ToString();

      }

      dr.Close();

      dbconn.Clear();

 }
    这里是第一次使用数据库类,因此读者要重点掌握数据库类的使用方法。dr.Read()在有返回值是为true,往下的语句获取日志数量并赋于全局变量LogCount值。最后关闭连接,并释放资源。
    getCommentCount方法则用来获取评论的数量,与getLogCount方法类似,不同的是这里操作的是Comment评论表,需要将结果保存到CommentCount变量,代码如下:

 void getCommentCount()

 {

      string strsql = "select count(id) as CommentCount from Comment";

      dbconfig dbconn = new dbconfig();

      SqlCommand cmd = new SqlCommand(strsql, dbconn.conn);

      SqlDataReader dr = cmd.ExecuteReader();

      if (dr.Read()) {

          CommentCount = dr["CommentCount"].ToString();

      }

      dr.Close();

      dbconn.Clear();

 }
    图1-2所示的效果中还有一些同样需要操作数据库,我们将在下面对它们进行逐一介绍。
 

自己动手做博客之日志管理-5.3 管理日志列表

   日志列表的管理也包括添加、修改和删除,在这里制作的用户控件名称为ucAdmin_Log.ascx,其页面的布局如图1-17所示。...
  • somboy
  • somboy
  • 2007年10月16日 13:04
  • 1114

日志管理怎么设计

日志管理作为项目的通用模块,
  • huaishu
  • huaishu
  • 2014年09月09日 16:31
  • 2269

应用程序日志管理!

如何做应用程序日志管理!在一个事务处理系统中,有各种操作权限的操作人员从事其权限范围内的操作。事务处理日志要记载这些操作的全部历史记录,它对监测系统运行状态,为事后监督提供直接依据,对防范系统安全有重...
  • wanye2008
  • wanye2008
  • 2008年07月31日 00:45
  • 469

Amaze UI后台管理模板

  • 2017年04月20日 12:40
  • 940KB
  • 下载

自己动手做博客之日志管理-1.1 系统分析

    随着互联网的高速发展,越来越多的人和行业接触到了她——博客,并开始了自己了业务。与此同时,博客也成为继免费主页、论坛、QQ和邮箱之后——草民的新秀,博客也成为时下Web 2.0的代名词。   ...
  • somboy
  • somboy
  • 2007年10月08日 14:15
  • 1944

自己动手做博客之日志管理-2.1 数据库类

    在ASP.NET中,任何的Web窗体页是以类的形式来组织的。因此,我们可以封装一些常用的方法和事件,这样将会在编程过程中起到事半功倍的效果。在经过对日志管理系统分析和数据库的设计后,可很容易地...
  • somboy
  • somboy
  • 2007年10月08日 14:29
  • 1166

SVN 日志模板

1.在工程所在的资源管理器文件夹,右键TortoiseSVN,选择Properties(属性) 2.在弹出的界面中,选择new...(新建...),然后选择Other 3.在弹出的界面中,Proper...
  • mergerly
  • mergerly
  • 2013年10月09日 18:25
  • 4304

H-ui.admin后台管理模版 3.1

  • 2017年05月26日 20:08
  • 8.18MB
  • 下载

自己动手做博客之日志管理-5.5 修改密码

    修改密码是本章介绍的最后一个管理功能,使用它管理员可以修改存储在admin.xml文件中的密码,完成这个功能的用户控件是ucAdmin_PWD.ascx。该控件的布局及运行效果如图1-22所示...
  • somboy
  • somboy
  • 2007年10月16日 13:09
  • 867
收藏助手
不良信息举报
您举报文章:自己动手做博客之日志管理-2.2 模板页
举报原因:
原因补充:

(最多只允许输入30个字)