自己动手做博客之日志管理-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();

   }

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

webpack模块打包工具教程

-
  • 1970年01月01日 08:00

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

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

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

    VS.NET 2005中提供了ASP.NET 2.0核心框架,ASP.NET 2.0改进了以往版本对网页设计方面支持上的不足,新增和增强了很多的功能,其中母版页控件就是一例。    将母版页称...
  • somboy
  • somboy
  • 2007-10-09 13:12:00
  • 1606

自己动手做博客之日志管理-3.2 编码实现系统首页

    结束布局阶段后,得到了系统首页的框架内容,接下来的工作是使用布局中的数据控件Repeater实现图1-3所示的效果。使用Repeater控件分页显示日志数据的代码比较多,第一步在Default...
  • somboy
  • somboy
  • 2007-10-09 13:27:00
  • 920

自己动手做大数据系统.pdf

  • 2018年01月29日 14:12
  • 18.58MB
  • 下载

自己动手做博客之日志管理-5.4 管理评论

    评论是单向管理,即只可以添加和删除,即使是管理员也不可以修改对日志的评论。管理评论使用了用户控件ucAdmin_Comment.ascx,运行效果如图15-21所示。...
  • somboy
  • somboy
  • 2007-10-16 13:06:00
  • 798

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

    修改密码是本章介绍的最后一个管理功能,使用它管理员可以修改存储在admin.xml文件中的密码,完成这个功能的用户控件是ucAdmin_PWD.ascx。该控件的布局及运行效果如图1-22所示...
  • somboy
  • somboy
  • 2007-10-16 13:09:00
  • 867

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

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

自己动手做博客之日志管理-1.2 数据库分析

    通过上节的系统结构分析,明确的系统的功能需求,数据库需求设计也变得更加清晰。在系统中最主要的是日志信息的存储,例如日志的类别、日志名称、日志的内容等。其次,是日志的附加信息,即日志的评论内容,...
  • somboy
  • somboy
  • 2007-10-08 14:25:00
  • 1118
收藏助手
不良信息举报
您举报文章:自己动手做博客之日志管理-3.3 编码实现其他模块
举报原因:
原因补充:

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