背景:“乐”战两周,牛腩新闻发布系统接近尾声了,心里那个激动呀,在牛腩老师的带领下,我们昂首向前,在战斗的过程中,敲着行行代码,体验茫茫人生,就在最后的最后,出现了一个不好对付的问题——FreeTextBox,它的出现,让我明白了:经验真的很重要!
一、FreeTextBox
是一个基于 Internet Explorer 中 MSHTML 技术的 ASP.NET 开源服务器控件。这是一款优秀的自由软件(Free Software),我们可以轻松地将其嵌入到 Web Forms 中实现 HTML 内容的在线编辑,在新闻发布、博客写作、论坛社区等多种 Web 系统中都会有用途。(第三方输入控件)
二、使用方法
1、下载
本来想用源码中的dll文件呢,但是引用后不能用,为了体验一下这个控件的强大之处,果断自己下载
FreeTextBox 3.2.2 简体中文版示例源码
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中的那一句话,问题搞定啦~~~无论输入神马,都能保存,嘿嘿
四、学习心得
牛腩老师真的好厉害呀,一个自己从来没有见过的外部程序,竟能分析出每行代码代表着什么属性,还不断的测试着,这两集视频中,牛腩老师说得最最多的一句话就是:根据经验......
哈哈,经验,我们也正在长经验,相信自己某天也能像牛腩老师一样,能分析出不同程序中的各种代码,加油......