对于学习ASP.NET的人,留言板再熟悉不过了。但是仅仅是文字留言功能,你是否觉得厌烦了呢?你是否渴望像QQ聊天那样,时不时地加上个表情来张扬个性?那么下面要说的就是如何实现。
一般说来,使用TextBox文本框来接收留言信息,但是TextBox只能写入文本,不能够加入图片,这可怎么办?那好,这个问题先放一放,说点其他的。如果你是个细心的人,并且经常浏览优酷网,那么你是否还记得优酷网留言时的效果呢?
请看下面的图并且注意:我点击了第一个图片“赞”,留言板中却是“[Yo17]”。很显然,它是用[Yo17]代表图片“赞”,有了这个例子,思路也就清晰了,Yo17是图片的名字,"[" 和"]"起到标示图片的作用。输出时,前一个"["用"<img src='Image/"代替,后一个"]"用".gif'>"代替,即:<img src='Image/Yo17.gif'/>。这样,使用Response.Write()输出时,就变成了图片了。
好了,现在开始代码的编写工作。首先,搜集一些表情图片,用QQ表情就行,在软件安装目录Program Files/Tencent/QQ/Face2 下,拷贝出来就行了。
在网站上新建一个Image文件夹用来存放图片。拖放一个TextBox,一个Button按钮,若干ImageButton控件。
- using System;
- using System.Data;
- using System.Configuration;
- using System.Web;
- using System.Web.Security;
- using System.Web.UI;
- using System.Web.UI.WebControls;
- using System.Web.UI.WebControls.WebParts;
- using System.Web.UI.HtmlControls;
- using System.IO;
- using System.Text.RegularExpressions; //引入正则表达式命名空间
- public partial class _Default : System.Web.UI.Page
- {
- protected void Page_Load(object sender, EventArgs e)
- {
- }
- protected void Button1_Click(object sender, EventArgs e)
- {
- string strContent = TextBox1.Text;
- //下面使用了正则表达式Regex类下的Replace方法。
- string strResult1 = Regex.Replace(strContent, @"{!", "<img src="Image/");
- string strResult2 = Regex.Replace(strResult1, @"!}", ".gif" mce_src="http://mce_host/Image/");
- string strResult2 = Regex.Replace(strResult1, @"!}", ".gif"/>");
- Response.Write(strResult2);
- }
- protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
- {
- TextBox1.Text += "{!Face1!}"; //Face1是图片的名称,下同
- }
- protected void ImageButton2_Click(object sender, ImageClickEventArgs e)
- {
- TextBox1.Text += "{!Face2!}";
- }
- protected void ImageButton3_Click(object sender, ImageClickEventArgs e)
- {
- TextBox1.Text += "{!Face3!}";
- }
- //其他ImgeButton代码省略……
- }