频道栏目
读书频道 > 软件开发 > C# > 深入体验C#项目开发
2.6.5 留言管理模块
2013-03-27 15:10:13     我来说两句
收藏   我要投稿

本文所属图书 > 深入体验C#项目开发

C#是当今使用最为频繁的编程语言之一,一直在开发领域占据重要的地位。本书通过10个综合实例的实现过程,详细讲解了C#在实践项目中的综合运用过程。这些项目从作者的学生时代写起,到项目经理结束,一直贯穿于作...  立即去当当网订购

2005年12月26日,晴空万里,留言为什么要管理

“没有规矩不成方圆”,这句古话很有道理。家庭有家庭会议,公司有规章制度。现在是和谐社会,作为舆论大平台的在线留言簿系统,一定要抵制违法言论的出现。所以我认为:留言管理模块不仅仅是保证系统数据库够用,删除不需要的留言数据,更重要的功能是删除违法的信息。

留言管理功能的实现文件如下。

文件Guanli.aspx。

文件Guanli.aspx.cs。

1. 留言管理列表页面

留言管理列表页面文件Guanli.aspx的功能是,将系统内的留言数据以分页列表样式显示出来,并提供每条留言的删除按钮。其具体实现流程如下。

(1) 插入1个GridView控件,用于以列表样式显示留言的信息,包括留言者、邮箱地址、时间和留言内容等。

(2) 通过GridView控件设置分页显示留言数为5。

(3) 通过GridView控件设置分页处理事件为gvMessage_PageIndexChanging。

(4) 在每条留言的后面插入1个Button按钮,用于激活删除处理事件。

(5) 通过PagerSettings设置分页模式为NextPreviousFirstLatst。

文件Guanli.aspx的主要代码如下。

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Guanli.aspx.cs" Inherits="BoardManage" StylesheetTheme="css" %>

    <form id="form1" runat="server">
    <asp:ScriptManager ID="sm" runat="server" />
    <table class="Table" border="0" cellpadding="0" cellspacing="0" align= "center">
  <tr><td colspan="2">
  <asp:UpdatePanel runat="server" ID="up">
  <ContentTemplate>
  <asp:GridView ID="gvMessage" runat="server" Width="100%"
AutoGenerateColumns="False"SkinID="mm" ShowHeader="False" AllowPaging= "True"OnPageIndexChanging="gvMessage_PageIndexChanging" PageSize="5"
OnRowDataBound="gvMessage_RowDataBound"OnRowCommand="gvMessage_RowCommand">
  <Columns>
  <asp:TemplateField>
  <ItemTemplate>
  <table class="Table" cellpadding="3" cellspacing="0">
  <tr><td>作者:<a href='mailto:<%# Eval("Email") %>'><%# Eval("Email") %></a> 于[<%# Eval("IP") %>]、[<%# Eval("CreateDate") %>] 留言</td>
   <td align="right">
   <asp:Button ID="btnDelete" CommandArgument='<%# Eval("ID") %>'
CommandName="del" runat="server" Text="删除该留言" CssClass="Button"
CausesValidation="false" />
   </td></tr>
   <tr><td colspan="2"><hr size="1" /></td></tr>
   <tr><td colspan="2" class="Title"> <%# Eval("Title") %></td></tr>
   <tr><td colspan="2"> <%# Eval("Message") %></td></tr>
  </table>
  </ItemTemplate>
  </asp:TemplateField>
  </Columns>
  <PagerSettings Mode="NextPreviousFirstLast" />
  </asp:GridView>
  </ContentTemplate>
  </asp:UpdatePanel>    
  </td></tr>
 </table>
</form>

上述实例代码执行后,将以分页列表的样式显示系统内的留言数据,并在每条留言的后面显示一个删除操作按钮。单击某留言后的【删除该留言】按钮后,将会激活删除处理程序。

2005年12月27日,晴空万里,GridView控件很好用

看来无论是本节介绍的留言管理列表界面,还是前面介绍的留言列表显示页面,都是采用了GridView控件来实现信息显示的。GridView控件是ASP.NET中的核心控件,它能灵活地绑定数据,并且通过属性来设置元素的显示格式。

2. 留言删除处理页面

留言删除处理页面文件Guanli.aspx.cs的功能是,将系统留言数据进行分页处理,并将用户选中的留言数据从系统库中删除。其具体实现流程如下。

(1) 引入命名空间,声明类BoardManage。

(2) 通过Page_Load事件载入初始化留言管理列表界面。

(3) 获取并显示系统内的数据。

(4) 设置分页处理事件,对数据进行重新绑定。

(5) 定义gvMessage_RowDataBound(object sender,GridViewRowEventArgs e),弹出【删除确认】对话框。

(6) 定义gvMessage_RowCommand(object sender,GridViewCommandEventArgs e),将用户选中的数据从系统库中删除。

文件Guanli.aspx.cs的主要代码如下。

public partial class BoardManage : System.Web.UI.Page
{
 protected void Page_Load(object sender,EventArgs e)
 {
  if(!Page.IsPostBack)
  {
   BindPageData();
  }
 }
 private void BindPageData()
 {   ///获取数据
  Message message = new Message();
  DataSet ds = message.GetMessages();
  ///显示数据
  gvMessage.DataSource = ds;
  gvMessage.DataBind();
 }
 protected void gvMessage_PageIndexChanging(object sender,
GridViewPageEventArgs e)
 {   ///设置新页面,并重新绑定数据
  gvMessage.PageIndex = e.NewPageIndex;
  BindPageData();
 }
 protected void gvMessage_RowDataBound(object sender,
GridViewRowEventArgs e)
 {
  Button button = (Button)e.Row.FindControl("btnDelete");
  if(button != null)
  {
  button.Attributes.Add("onclick","return confirm
  (\"您确认要删除当前行的留言吗?\");");
  }
 }
 protected void gvMessage_RowCommand(object sender,
GridViewCommandEventArgs e)
 {
  if(e.CommandName.ToLower() == "del")
  {   ///删除选择的留言
   Message message = new Message();
   if(message.DeleteMessage(Int32.Parse
    (e.CommandArgument.ToString())) > 0)
   {   ///重新绑定数据
    BindPageData();
   }
  }
 }
}

上述代码执行后的显示效果如下:当用户单击【删除该留言】按钮后,将弹出【删除确认】对话框,如果单击【取消】按钮则返回列表页面,如果单击【确定】按钮则将此留言数据从系统内删除。

2005年12月28日,深夜,晴

历经这几天的忙碌,我今天终于完成了整个编码工作,真是赶着鸭子上架,现在想来还唏嘘不已。现在唯一的工作就是系统调试了,这个工作由我来完成。趁着心情不错,对这段时间自己的工作做一个简单的总结:据我了解,日常生活中D最高效,注重办事效率,所以对他很放心,就没监视他的工作,现在我才发现我太理所当然了,差点耽误了项目的工期。总结完毕之后,我决定早点休息,为接下来的调试做准备。

您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:2.6.4 留言发布模块
下一篇:2.7 最后的战役——测试运行
相关文章
图文推荐
排行
热门
最新书评
特别推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站