背景:“乐”战两周,牛腩新闻发布系统接近尾声了,心里那个激动呀,在牛腩老师的带领下,我们昂首向前,在战斗的过程中,敲着行行代码,体验茫茫人生,就在最后的最后,出现了一个不好对付的问题——FreeTextBox,它的出现,让我明白了:经验真的很重要!
一、FreeTextBox
是一个基于 Internet Explorer 中 MSHTML 技术的 ASP.NET 开源服务器控件。这是一款优秀的自由软件(Free Software),我们可以轻松地将其嵌入到 Web Forms 中实现 HTML 内容的在线编辑,在新闻发布、博客写作、论坛社区等多种 Web 系统中都会有用途。(第三方输入控件)
二、使用方法
1、下载
本来想用源码中的dll文件呢,但是引用后不能用,为了体验一下这个控件的强大之处,果断自己下载
2、解压后查看“源码必读”
3、引用
4、在工具箱中添加
5、插入并修改属性
在Web界面上自动生成引用代码:
<span style="font-family:KaiTi_GB2312;font-size:18px;"><strong><%@ Register assembly="FreeTextBox" namespace="FreeTextBoxControls" tagprefix="FTB" %></strong></span>
属性代码:
<span style="font-family:KaiTi_GB2312;font-size:18px;"><strong><p>新闻内容:</p>
<p>
<FTB:FreeTextBox Text="" Language="zh-CN" ToolbarStyleConfiguration="OfficeMac" ID="ftbContent" Width="480" Height="200" runat="server">
</FTB:FreeTextBox>
</p></strong></span>
<span style="font-family:KaiTi_GB2312;font-size:18px;"><strong>/*
* 作者:何丽杰
* 小组:个人版
* 说明:添加新闻内容
* 创建日期:2015-07-18
* 版本号:V1.0.0
*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using BLL;
using System.Data;
using Model;
public partial class admin_addnews : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//判断session中是否存在管理员
if (Session["admin"]!=null && Session["admin"].ToString()=="niunan")
{
//已登陆
if (!Page.IsPostBack)
{
//绑定新闻分类
DataTable dt=new CategoryManager().SelectAll();
ddlCategory.DataSource = dt;
ddlCategory.DataTextField = "name";
ddlCategory.DataValueField = "id";
ddlCategory.DataBind();
}
}
else
{
//未登录
Response.Redirect("login.aspx");
}
}
//添加新闻按钮
protected void btnAdd_Click(object sender, EventArgs e)
{
string title = txtTitle.Text.Trim();
string content = ftbContent.Text.Trim();
string caid=ddlCategory.SelectedValue;
News n=new News(title,content,caid);
bool b = new NewsManager().Insert(n);
if (b)
{
Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript' defer>alert('新闻添加成功!');</script>");
}
else
{
Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript' defer>alert('新闻添加失败,请联系管理员!');</script>");
}
//清空标题内容
txtTitle.Text = "";
ftbContent.Text = "";
}
}</strong></span>
三、解决问题
刚开始运行的时候,在内容框添加中文内容就会出现下面的错误提示:
后来上网搜索找到了解决的方案:
1、在页面设置的代码上添上:(仅对ASP.NET4.0以下有效,牛腩视频中提供)
<%@ Page Title="添加新闻_后台管理_牛腩新闻发布系统" Language="C#" MasterPageFile="~/admin/m_common.master" AutoEventWireup="true"ValidateRequest="false" CodeFile="addnews.aspx.cs" Inherits="admin_addnews" %>
2、打开Web.config,在其<system.web>后面添上:
<httpRuntime requestValidationMode="2.0">
</httpRuntime>
在添上1中的那一句话,问题搞定啦~~~无论输入神马,都能保存,嘿嘿
四、学习心得
牛腩老师真的好厉害呀,一个自己从来没有见过的外部程序,竟能分析出每行代码代表着什么属性,还不断的测试着,这两集视频中,牛腩老师说得最最多的一句话就是:根据经验......
哈哈,经验,我们也正在长经验,相信自己某天也能像牛腩老师一样,能分析出不同程序中的各种代码,加油......