文章教程

20.9留言管理模块

8/31/2020 9:56:04 PM 人评论 次浏览

本节开始留言管理模块的编码工作。俗话说“不成规矩不成方圆”,作为舆论大平台的在线留言本系统来说,一定要抵制违法言论的出现。因此,留言管理模块不仅仅要保证系统数据库够用,删除不需要的留言数据,更重要的是删除违法的信息。故留言管理模块的功能是对系统内的留言信息进行管理,实现正常的系统维护功能。该模块的实现文件如下。

  • Guanli.aspx。
  • Guanli.aspx.cs。

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

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

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

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

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

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

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

……
  <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="300%" 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">
……

上述实例代码执行后,将以分页列表的样式显示系统内的留言数据,并在每条留言的后面显示一个删除操作按钮,如图20-14所示。

图片 441

图20-14 留言管理页面效果图

当单击图20-14内某留言后的【删除该留言】按钮后,将会激活删除处理程序。

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

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

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

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

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

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

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

上述过程的运行流程如图20-15所示。

20-15

图20-15 留言删除处理流程图

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

……
using System.Web.UI.HtmlControls;
using ASPNETAJAXWeb.AjaxLeaveword;
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();
      }
    }
  }
}

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

图片 443

图20-16 删除确认对话框


教程类别