自己动手做博客之日志管理-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所示的效果中还有一些同样需要操作数据库,我们将在下面对它们进行逐一介绍。
 

2014年11月份工作日志 模板样例

2014年11月份工作日志 本月目标:                                    -------------------------------------------...
  • hsg77
  • hsg77
  • 2014年11月26日 17:42
  • 3079

30个后台管理系统模板

1. Archon Flat Responsive Admin Bootstrap 3 Demo &Download 2. Thin Admin Template Demo ...
  • lionel1982
  • lionel1982
  • 2015年09月06日 14:36
  • 3565

2016 最好的Bootstrap 管理模板

原址:点击打开链接 20最佳HTML5引导管理模板对于Web应用程序和网站后端2016年 二零一六年三月三十零日 Aigars 网站模板 0评论 ...
  • u011461420
  • u011461420
  • 2016年04月09日 11:50
  • 18757

推荐12个非常不错而且免费的后台管理HTML模板

原文地址: http://www.open-open.com/news/view/15d57ab 下面介绍的这些免费后端管理HTML模板,都非常不错。建议您收藏。 Charism...
  • lllljz
  • lllljz
  • 2015年01月28日 16:23
  • 9679

bootstap后台管理增删改

说明:后台管理的增删改很常用,采用bootstrap方便快捷,本文主要用了ajax和bootstrap结合来处理数据交互 1.前端jsp: 爬虫网址配置管理 ...
  • u011662320
  • u011662320
  • 2017年03月11日 13:51
  • 472

EasyUI管理后台模板(附源码)

下载地址:http://files.cnblogs.com/wyguo/easyui_demo.zip 作者:Wuyeguo 声明:欢迎转载,但未经作者同意必须保留此段声明,且在文...
  • yelin042
  • yelin042
  • 2017年07月17日 05:56
  • 1173

系统日志管理

1、日志的查看 日志可以记录下系统所产生的所有行为,并按照某种规范表达出来。我们可以使用日志系统所记录的信息为系统进行排错,优化系统的性能,或者根据这些信息调整系统的行为。 收集你想要的数据,分析...
  • u012582664
  • u012582664
  • 2017年02月22日 10:19
  • 927

新闻系统——VS制作自己的模板

我们在做机房管理的项目时,就用过模板方法,建立一个模板,这样就会省很多事,我们不需要每次都添加同样的东西,比如我们的类窗体,就可以制作一个模板,将注释和需要引用的控件直接添加上,这可以省去很大的麻烦,...
  • u013038643
  • u013038643
  • 2015年05月23日 19:30
  • 1441

集中化Linux日志管理系统

笔者 工作中 负责 着 60 多 台Linux服务器的运维管理工作, 初期 每台机器日志的巡查,是一件相当耗时耗力的工作。后来经过 摸索 ,整理出一个非常适合各种规模的服务器的日志集中化管理,巡查流程...
  • a727756480
  • a727756480
  • 2014年03月25日 14:30
  • 6872

Spring AOP 日志管理

1.对AOP的理解 ——  分工来做各个部分,运行时候整合的思想 2.理解 面向过程,面向对象,面向切面 的思想 1)面向过程:房间装修时,准备装一个灯,就拉一根电线,连接灯。 ...
  • u012554102
  • u012554102
  • 2015年10月27日 20:53
  • 1565
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:自己动手做博客之日志管理-2.2 模板页
举报原因:
原因补充:

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