20.9 留言管理模块
本节开始留言管理模块的编码工作。俗话说“不成规矩不成方圆”,作为舆论大平台的在线留言本系统来说,一定要抵制违法言论的出现。因此,留言管理模块不仅仅要保证系统数据库够用,删除不需要的留言数据,更重要的是删除违法的信息。故留言管理模块的功能是对系统内的留言信息进行管理,实现正常的系统维护功能。该模块的实现文件如下。
- Guanli.aspx。
- Guanli.aspx.cs。
20.9.1 留言管理列表页面
留言管理列表页面文件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所示。
图20-14 留言管理页面效果图
当单击图20-14内某留言后的【删除该留言】按钮后,将会激活删除处理程序。
20.9.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),将用户选中的数据从系统库中删除。
上述过程的运行流程如图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所示。如果单击【取消】按钮,则返回列表页面;如果单击【确定】按钮,则将此留言数据从系统内删除。
图20-16 删除确认对话框