自己动手做博客之日志管理-3.3 编码实现其他模块

原创 2007年10月09日 13:31:00

    所谓其他模块指的是在系统首页中除了主体日志之外的模块,从图1-3所示的效果中可以看到这些模块包括:日志分类、最新日志和最近评论。这些模块与母版页一样,在每个页面中都会有显示,设计时将这些模块分别封装为成同的用户控件,再嵌入到母版页中,具体的实现如下所示。

1.日志分类

    用户控件最简单的一个定义是ASP.NET布局代码中可重用的部分,它以.ascx为扩展名进行保存。创建用户控件非常简单,它们来本是ASP.NET页页的一部分,被封装在一个单独的文件中,可在一个应用程序中根据需要多次重用。编写用户控件和编写aspx页面方法一样,我们只需要在aspx页面中编写代码就能够使用它们。用户控件还可以引发自定义事件,由客户端用户来响应事件以调用处理方法。

    下面介绍创建日志类别用户控件的步骤:

    (1)在【解决资源管理器】窗格中右击选择【添加新项】命令或者选择【网站】|【添加新项】命令,打开【添加新项】对话框。

    (2)在对话框的【模板】选项区中单击【Web用户控件】选项,在【名称】文本框中Web用户控件的默认名为WebUserControl1.ascx,这里修改文件名为ucLogCategory.ascx。从【语言】列表框选择Visual C#项。

    (3)单击【添加】按钮,VS.NET将在网站所在的根目录中创建ucLogCategory.ascx文件。创建完成后会自动打开用户控件的HTML【源】视图,并显示一行代码,如下所示:

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="ucLogCategory.ascx.cs" Inherits="ucLogCategory" %>

    (4)这里会发现与ASPX页面非常相似,不同是仅是没有太多的模板代码。而且使用的是@Control指令,该指令表示所生成的类是从System.Web.UI.UserControl继承,并可以将此控件用于窗体中。

    (5)切换至用户控件的【设计】视图,然后添加Repeater控件、图片和其他布局代码,如图1-6所示为最终日志类别的运行和布局效果。

1-6  日志类别用户控件

    打开用户控件的后台文件ucLogCategory.ascx.cs,编写实现图1-6左所示效果的代码。日志分类的数据来自infosort表,实现代码如下:

    protected void Page_Load(object sender, EventArgs e)

    {

        if (!IsPostBack)

        {

            dbconfig dbconn = new dbconfig();

            String sql = "SELECT id,sortname FROM infosort";

            dbconn.da = new SqlDataAdapter(sql, dbconn.conn);

            DataSet ds = new DataSet();

            dbconn.da.Fill(ds, "Table");

            repLogCate.DataSource = ds.Tables["Table"].DefaultView;

            repLogCate.DataBind();

            ds = null;

            dbconn.Clear();

        }

    }

    在代码中可以看出显示数据日志分类Repeater控件的IDrepLogCate,在同一个页面中要以避免使用相同的ID,而且在后台代码中,也仅为一个ID指定一个数据源。

2.最新日志

    最新日志模块使用的用户控件名称为ucLogNews.ascx,添加方法这里就不再介绍,其布局与日志分类模块相似,如下所示是这部分的布局代码:

<asp:Repeater ID="repNewLogs" runat="server">

    <HeaderTemplate>

        <div class="border1">

        <div class="lefttitle">最新日志</div>

        <div class="msg">

        <ul class="msgtitlelist"  id="pl">

    </HeaderTemplate>

    <ItemTemplate>

        <li><a href='ShowLog.aspx?id=<%#DataBinder.Eval(Container.DataItem,"id")%>'>

        <%#DataBinder.Eval(Container.DataItem, "title")%></a></li>

    </ItemTemplate>

    <FooterTemplate>

        </ul></div></div>

    </FooterTemplate>

</asp:Repeater>

    这里明确指定了最新日志使用IDrepNewsLgsRepeater控件,其显示的数据来自info表的idtitle两个字段,数据的数量为按发表时间排序的前5条,如下所示是实现代码:

   if (!IsPostBack)

   {

       dbconfig dbconn = new dbconfig();

       String sql = "SELECT top 5 id,title FROM info order by [date] desc";

       dbconn.da = new SqlDataAdapter(sql, dbconn.conn);

       DataSet ds = new DataSet();

       dbconn.da.Fill(ds, "Table");

       repNewLogs.DataSource = ds.Tables["Table"].DefaultView;

       repNewLogs.DataBind();

       ds = null;

       dbconn.Clear();

   }

3.最近评论

    ucLogComment.ascx是实现显示最近评论的用户控件,它包含了名为repCommentRepeater数据控件,数据来自comment表,具体代码如下所示:

   if (!IsPostBack)

   {

       dbconfig dbconn = new dbconfig();

       String sql = "SELECT top 5 id,content,sortid FROM comment order by [date] desc";

       SqlCommand command = new SqlCommand(sql, dbconn.conn);

       SqlDataReader dr = command.ExecuteReader();

       repComment.DataSource = dr;

       repComment.DataBind();

       dbconn.Clear();

   }

    至此,一个完整的系统首页就制作完成了,它包含了先创建通用的母版页,再添加内容页,然后再添加显示布局,实现时使用了通用的数据库类。通过首页的制作,读者的重点是掌握如何创建母版页、内容页、用户控件。因为在本章的后面,将多次用到它们,到时将不再重复介绍。 

日志管理模块

日志管理模块
  • hesaisong
  • hesaisong
  • 2014年05月08日 11:46
  • 185

日志系统框架的设计与实现

在Java领域,存在大量的日志组件,open-open收录了21个日志组件。日志系统作为一种应用程序服务,对于跟踪调试、程序状态记录、崩溃数据恢复都有着重要的作用,我们可以把Java日志系统看作是必不...
  • woddle
  • woddle
  • 2014年08月02日 12:36
  • 4161

java 项目日志管理设计方案

java 项目日志管理设计方案 因项目需要记录整个系统的操作记录,考虑到系统操作日志的数据量,单表很容易达到瓶颈,导致查询效率低下,顾使用分表方案,减小数据库的负担,缩短查询时间。目前对于分表的解...
  • jlh912008548
  • jlh912008548
  • 2017年05月27日 16:00
  • 4571

服务器设计系列:日志模块

log模块是一个小模块,却是每个系统必备的模块。优秀的系统一定会有优秀的log信息,也可以说全面到位的log信息在一定程度上决定了一个系统的健壮性。在linux上,log模块是跟踪程序运行,验证业务逻...
  • zhoudaxia
  • zhoudaxia
  • 2013年11月13日 22:31
  • 3310

C语言实现的日志模块

转载自:http://www.2cto.com/kf/201210/158575.html 模块接口 模块接口比较简单,因为主要只有写日志的操作。 创建日志模块变量 [cpp]  log_t...
  • shanzhizi
  • shanzhizi
  • 2014年01月04日 16:05
  • 1955

WMS仓库管理系统---(6)商品管理模块

商品是所有系统中的核心,电子商务网站,ERP系统都是围绕着商品展开的,商品是一切信息的基础,这一节我们看下商品管理模块有哪些功能以及和商品有关的属性。 商品的主要功能包括添加,修改,查询,和商品关联的...
  • zx13525079024
  • zx13525079024
  • 2015年02月03日 18:48
  • 2877

【黑马程序员】在Android上实现可视化交通灯管理系统

看了张老师的交通灯项目视频后。我感觉在面向对象思维方面受益匪浅,恰好这段时间在自学Android。所以想到是否能把控制台程序转化成Android下的图形界面程序? 我觉得可以尝试一下,以检验我自学的...
  • tnt2011cpp
  • tnt2011cpp
  • 2014年06月19日 13:54
  • 694

使用log4j进行日志管理

使用log4j进行日志管理 1、Log4j简介   作用: 1、 跟踪代码的运行轨迹。 2、 输出调试信息 三大组成: 1、 Logger类---生成日志。 2、 Appender类---定义日志输...
  • lengjinghk
  • lengjinghk
  • 2016年08月23日 11:15
  • 958

浅谈管理系统操作日志设计(附操作日志类)

管理系统的操作日志如何做成通用的模块一直是个让我头疼的问题,不过看了博客园里的某篇文章后,现在基本解决了。   相关文章链接:《系统操作日志设计》   在开始做之前,必须把两个日志分清楚,...
  • sd4015700
  • sd4015700
  • 2015年08月10日 13:14
  • 6400

博客管理系统开发总结1(附代码)

(这是我和我室友开发的第一个程序。起初为了完成老师的作业。技术和设计都不是很好。)     开发目的: 这个系统起初设定是为了给老师使用,由于我们所有作业都发在博客院里,所以老师查看不是很方便。我们的...
  • zuhaoran
  • zuhaoran
  • 2016年09月18日 21:16
  • 245
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:自己动手做博客之日志管理-3.3 编码实现其他模块
举报原因:
原因补充:

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