20.8 留言发布模块
接下来开始留言发布模块的编码工作。留言发布模块的功能是将用户发布的留言信息添加到系统库中。此模块的功能是由文件Index.aspx.cs实现的,其具体实现过程如下。
(1)引入命名空间,声明类Board。
(2)通过Page_Load载入初始化发布表单界面。
(3)IP地址判断处理。如果IP为空,则停止处理。
(4)定义btnCommit_Click,进行数据处理。
(5)验证码判断处理。如果非法,则输出提示。
(6)将数据添加到系统库中。
上述过程的运行流程如图20-13所示。
图20-13 留言发布处理流程图
文件Index.aspx.cs的主要实现代码如下。
……
using AjaxControlToolkit;
using ASPNETAJAXWeb.ValidateCode.Page;
public partial class Board : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{ //获取客户端的IP地址
tbIP.Text = Request.UserHostAddress;
if(!Page.IsPostBack)
{
BindPageData();
}
sm.RegisterAsyncPostBackControl(tbMessage);
}
private void BindPageData()
{ //获取数据
Message message = new Message();
DataSet ds = message.GetMessages();
//显示数据
gvMessage.DataSource = ds;
gvMessage.DataBind();
}
protected void btnCommit_Click(object sender,EventArgs e)
{
if(Session[ValidateCode.VALIDATECODEKEY] != null)
{ //验证验证码是否相等
if(tbCode.Text != Session[ValidateCode.VALIDATECODEKEY].ToString())
{
lbMessage.Text = "验证码输入错误,请重新输入";
return;
}
Message message = new Message();
//发表留言
if(message.AddMessage(tbTitle.Text,tbMessage.Text,Request.UserHostAddress,tbEmail.Text) > 0)
{ //重新显示数据
BindPageData();
}
}
}
protected void btnClear_Click(object sender,EventArgs e)
{
tbMessage.Text = string.Empty;
}
}
从留言发布模块的实现过程中可以看出,留言回复和留言发布的实现过程基本类似,都是基于数据库的添加处理,不同的是留言发布的数据被添加到数据库内的留言信息表,而发布的回复数据被添加到数据库内的回复信息表。