随着网络技术的飞速发展,在网络上写日记已成为人们的一种习惯。将每天发生的事,每天的心得体会,每天的心态变化都可以记录到网络日记本。本程序中提供了在线文本编辑器,用户输入留言主题和留言内容,然后单击【提交】按钮即可将留言信息保存到数据库中。同时,对输入的留言内容可以进行编辑,例如设置字体、调整大小、插入图片、插入超链接、设置文字颜色等。
程序运行结果如图1所示。

图1 写日记
本程序主要通过FreeTextBox组件来实现在线文本编辑的功能。
FreeTextBox组件是一个免费的.NET在线文本编辑器,它以.dll文件格式封装起来,以供用户使用。
用户可以先通过添加引用的方式将该组件引用到程序中,引用完成后,在需要该组件的页面中注册该组件并将该组件添加到合适的位置,注册该组件的代码如下:
<%@ Register TagPrefix="FTB" Namespace="FreeTextBoxControls" Assembly="FreeTextBox" %>
注册组件完成后,需要在合适的位置显示组件,显示组件时编写如下代码:
<FTB:FreeTextBox
id="FreeTextBox1" runat="Server"
SupportFolder="aspnet_client/FreeTextBox/" ButtonSet="Office2003"
Height="120px" Width="365px"
ImageGalleryPath="../../images/" Language="zh-cn"
DownLevelCols="50" />
注意:
在将FreeTextBox中的文本写入到数据库中时,可能提示数据插入时存在危险字符的错误,只需要在Web.config配置文件中的<system.web>节中添加如下代码即可解决该问题。
<pages validateRequest="false"/>
下面介绍“制作在线日记本”实例的实现步骤。
(1)新建一个网站,默认主页为Default.aspx。
(2)右键单击项目名称,在弹出的快捷菜单中选择“添加引用”一项,从打开的“添加引用”对话框中选择“浏览”选项卡,在磁盘中找到FreeTextBox组件,将其添加到项目中,“添加引用”完成后,将FreeTextBox组件所需的资源文件复制到项目中,这些资源文件包括图片、脚本和配置文件等。本程序放置资源文件的文件夹为FreeTextBox。
(3)将FreeTextBox组件引用到项目中后,在需要该组件的页面中进行注册使用,注册该组件的代码如下:
<%@ Register TagPrefix="FTB" Namespace="FreeTextBoxControls" Assembly="FreeTextBox" %>
(4)在Default.aspx页面中添加1个TextBox控件、1个已注册的FreeTextBox组件、两个Button控件,分别用来输入留言主题、编辑文本内容、提交和重置表单内容。
(5)在合适的位置显示FreeTextBox组件,显示组件时编写的代码如下:
<FTB:FreeTextBox
id="FreeTextBox1" runat="Server"
SupportFolder="aspnet_client/FreeTextBox/" ButtonSet="Office2003"
Height="120px" Width="365px"
ImageGalleryPath="../../images/" Language="zh-cn"
DownLevelCols="50" />
(6)在后台文件Default.aspx.cs中,编写提交按钮btnOK的Click事件。在该事件中,首先连接数据库,然后通过执行Insert Into语句将获取到的表单数据(留言主题和留言内容)插入到数据库中。代码如下:
protected void
btnOK_Click(object sender, EventArgs e)
{
//连接数据库
string
Constr = "server=(local);database=db_control;uid=sa;pwd=";
string
cmdtxt = "INSERT INTO
tb_LeaveWord(Subject,Content,DateTime,IP)";
cmdtxt += " VALUES('" + this.TextBox1.Text
+ "'";
cmdtxt += ",'" + this.FreeTextBox1.Text
+ "','" + DateTime.Now
+ "'";
cmdtxt += ",'"
+ Request.UserHostAddress + "')";
bool
flag = false;
SqlConnection
con = new SqlConnection(Constr);
con.Open();
SqlCommand
cmd = new SqlCommand(cmdtxt,con);
try
{
//执行SQL语句
cmd.ExecuteNonQuery();
flag
= true;
}
catch
{
flag
= false;
}
finally
{
//释放资源
cmd.Dispose();
con.Close();
}
if
(flag)
{
Response.Write("<script
language=javascript>alert('添加成功!');location='Default.aspx'</script>");
}
else
{
Response.Write("<script
language=javascript>alert('添加失败!');location='javascript:history.go(-1)'</script>");
}
}
说明:
在Default.aspx.cs文件中需引入命名空间System.Data.SqlClient。