频道栏目
读书频道 > 软件开发 > C# > 深入体验C#项目开发
2.6.3 留言回复模块
2013-03-27 14:59:10     我来说两句
收藏   我要投稿

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

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

接下来开始设计留言回复模块,此模块的功能是提供系统内留言的回复表单,供用户发布对某留言的回复信息。上述功能的实现文件如下。

文件Huifu.aspx。

文件Huifu.aspx.cs。

1. 留言回复表单页面

留言回复表单页面文件Huifu.aspx的功能是,提供留言回复表单,供用户发布对某留言的回复信息。其具体实现流程如下。

(1) 插入3个TextBox控件,分别实现IP地址、回复内容和验证码的输入框。

(2) 插入1个CustomValidator控件,用于对回复内容的验证。

(3) 插入1个TextBoxWatermarkExtender控件,用于显示水印提示。

(4) 插入1个ValidatorCalloutExtender控件,用于实现多样式验证。

(5) 调用验证码文件Yanzhengma.aspx实现验证码显示。

(6) 定义MessageValidator(source,argument)来控制输入的回复内容。

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

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

    <form id="form1" runat="server">
    <asp:ScriptManager ID="sm" runat="server" />
    <table class="Table" border="0" cellpadding="2" bgcolor="Black" cellspacing="1" align="center">
  <tr bgcolor="white"><td colspan="2"><hr /></td></tr>  
  <tr bgcolor="white">
   <td>IP地址:</td>
   <td width="90%"><asp:TextBox ID="tbIP" runat="server"
Enabled="false" SkinID="nn" Width="40%"></asp:TextBox></td>
  </tr>  
  <tr bgcolor="white">
   <td valign="top">回复内容:</td>
   <td width="90%">
    <asp:TextBox ID="tbMessage" runat="server" Height="200px" SkinID="nn" TextMode="MultiLine" Width="80%"></asp:TextBox>
    <asp:CustomValidator ID="cvMessage" runat="server"
ClientValidationFunction="MessageValidator" ControlToValidate="tbMessage"
Display="None" ErrorMessage="长度至少为10,最多为1000。">
</asp:CustomValidator>
    <ajaxToolkit:TextBoxWatermarkExtender ID="wmeMessage" runat= "server"TargetControlID="tbMessage" WatermarkText="请输入留言内容"
WatermarkCssClass="Watermark"></ajaxToolkit:TextBoxWatermarkExtender>
     <ajaxToolkit:ValidatorCalloutExtender ID="vceMessage"
runat="server" TargetControlID="cvMessage" HighlightCssClass="Validator">
</ajaxToolkit:ValidatorCalloutExtender> 
   </td></tr>
  <tr bgcolor="white">
   <td>验 证 码:</td>
   <td width="90%">
    <asp:TextBox ID="tbCode" runat="server" SkinID="nn" Width="80px"> </asp:TextBox>
    <asp:Image ID="imgCode" runat="server" ImageUrl = "Yanzhengma.aspx" />
    <asp:Label ID="lbMessage" runat="server" ForeColor="red" CssClass="Text"></asp:Label>
   </td></tr>
  <tr bgcolor="white"><td>&nbsp;</td><td width="90%">
  <asp:UpdatePanel ID="upbutton" runat="server">
  <ContentTemplate>
   <asp:Button ID="btnCommit" runat="server" Text="提交"
SkinID="anniu" Width="100px" OnClick="btnCommit_Click" />&nbsp;&nbsp;&nbsp;
    <asp:Button ID="btnClear" runat="server" Text="清空" SkinID= "anniu" Width="100px" CausesValidation="False" OnClick="btnClear_Click" />
   </ContentTemplate>
   <Triggers><asp:PostBackTrigger ControlID="btnClear" /></Triggers>
   </asp:UpdatePanel>
   </td></tr>
    </table>
    <script language="javascript" type="text/javascript">
    function MessageValidator(source,argument)
    {
  if(argument.Value.length > 10 && argument.Value.length < 8000)
argument.IsValid = true;
  else argument.IsValid = false;
    }   
    </script>
</form>

上述实例代码执行后,将首先显示一回复表单界面,当输入的回复内容非法时,则调用Ajax控件显示对应的提示。

2. 回复数据处理页面

回复数据处理页面文件Huifu.aspx.cs的功能是,获取用户回复表单的数据,并将获取的回复数据添加到系统库中。其具体实现流程如下。

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

(2) 通过Page_Load事件载入初始化回复表单界面。

(3) 进行IP地址判断处理,如果IP为空则停止处理。

(4) 定义btnCommit_Click事件,进行数据处理。

(5) 进行验证码判断处理,如果非法则输出提示。

(6) 将数据添加到系统库中。

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


using ASPNETAJAXWeb.ValidateCode.Page;
public partial class Reply : System.Web.UI.Page
{
 int messageID = -1;
    protected void Page_Load(object sender, EventArgs e)
 {   ///获取客户端的IP地址
  tbIP.Text = Request.UserHostAddress;
  if(Request.Params["MessageID"] != null)
  {
   messageID = Int32.Parse(Request.Params["MessageID"].ToString());
  }
  btnCommit.Enabled = messageID > 0 ? true : false;
    }
 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.AddReply(tbMessage.Text,
   Request.UserHostAddress,messageID) > 0)
   { ///重定向到留言页面  
    Response.Redirect("Index.aspx");
   }
  }
 }
 protected void btnClear_Click(object sender,EventArgs e)
 {
  tbMessage.Text = string.Empty;
 }
}

您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:2.6.2 留言分页列表显示模块
下一篇:2.6.4 留言发布模块
相关文章
图文推荐
排行
热门
最新书评
文章
下载
读书
特别推荐

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

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