制作在线日记本

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

程序运行结果如图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" %>

4Default.aspx页面中添加1TextBox控件、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中,编写提交按钮btnOKClick事件。在该事件中,首先连接数据库,然后通过执行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