准备:首先下载程序包 (1):FCKeditor.Net包 和FCKeditor_2.X.X 版本包
1、准备工做
首先下载FCKeditor V2.3.2 released,下载地址在上面。这个压缩包里并不包含.NET要用到的DLL控件,因此还要下载另一个压缩包,下载地址在上面的控件地址里。把第一个文件解压到WEB根目录,默认文件夹名为:FCKeditor;再把第二个包解压,里面包含了源代码,若是你想本身再次开发,能够双击FredCK.FCKeditorV2.csproj文件,打开VS.NET进行修改,所用的语言是C#;不想修改的话,直接把bin\Release下面的FredCK.FCKeditorV2.DLL文件拷到WEB目录的bin下面。
2、精简文件
由于只用到ASP.NET,因此有必要精简一下文件。
进入FCKeditor文件夹,把全部“_”开头的文件和文件夹删掉,这些都是一些范例,只保留editor文件夹、fckconfig.js、fckeditor.js、fckstyles.xml、fcktemplates.xml就能够了;
进入editor文件夹,删掉“_source”文件夹,里面放的一样是源文件;
退回上一级目录进入filemanager文件夹,有browser和upload两个文件夹。进入browser\default\connectors,只保留aspx文件夹,其他的删掉;mcpuk目录亦可删除;upload也同样,只保留aspx文件夹;
退到editor再进入p_w_picpaths文件夹,smiley里面放的是表情图标,有msn和fun两个系列,若是你想用本身的表情图标,能够把它们都删除;若是你想用这里的表情图标那就不要删了;
lang里面放的是语言包,若是只是用简体中文,那么只保留fcklanguagemanager.js、zh-cn.js两个文件就好了,建议也保留en.js(英文)、zh.js(繁体中文)两个文件,fcklanguagemanager.js是语言配置文件,有了它才能和fckconfig.js里的设置成对,对应上相应的语言文件,必定要保留!
再退出lang文件夹,进入skins文件夹,若是你想使用FCKeditor默认的奶×××,那就把除了default文件夹外的另两个文件夹直接删除,若是想用别的,那就看你本身的喜爱了。
至此,文件精简完毕,由原来的2.55M变成如今的797K了。接着修改设置。
3、修改设置
打开位于根目录的fckconfig.js文件。FCKConfig.SkinPath = FCKConfig.BasePath + 'skins/default/' ;这行是设置皮肤的,若是精简时保留了silver,就把路径改为skins/silver,默认就不用管它了;FCKConfig.DefaultLanguage = 'en' ;设置默认语言,把en改为zh-cn,即简体中文;FCKConfig.TabSpaces = 0;若是在编辑过程当中要用到TAB键,就把0改为1;
在。NET中应用就把FCKCONFIG。JS中的ASP改为ASPX(默认文件浏览器语言,快速上传语言)
改完后保存,FCKeditor已经彻底支持ASP.NET了。固然还有一些安全问题,只要修改相应的toolbar,鼠标右键菜单等等,由于个人后台不面对前台用户的,即没有留言本和日记回复,因此略过这些步骤。下一步是打开VS.NET,在ASP.NET页面中加入FCKeditor。
4、ASP.NET中的应用
打开项目的“资源管理器”,添加“FredCK.FCKeditorV2”引用。新建一个页面,添加FCK的引用,代码以下:
<%@ Register TagPrefix="FCKeditorV2" Namespace="FredCK.FCKeditorV2" Assembly="FredCK.FCKeditorV2" %>
并确保@ Page中的“AutoEventWireup”“validateRequest”两个值都为false,否则当你发表的文章中含有连接或是其余HTML语句时,.NET会警告你有安全隐患而出错。在form的适当位置加入FCKeditor控件,固然form必定要有“runat="server"”,代码以下:
<FCKeditorV2:FCKeditor id="content" runat="server"></FCKeditorV2:FCKeditor>
若是 插入图片会报错,请继续一下步骤:
fckeditor配置重点说明
一、目录放哪里均可以,首先配置该目录下的fckconfig.js文件,快捷方法是把asp都替换成aspx。
二、在web.config里加上
<appSettings>
<add key="FCKeditor:UserFilesPath" value="/fc/fserFiles/" />
<add key="FCKeditor:BasePath" value="/fc/FCKeditor/" />
</appSettings>
注意是:虚拟目录加fceditor的网站目录路径
三、把fckeditor的dll包引用到项目
四、最关键的一步是:在目录权限上把asp.net用户的权限给到最大
五、文件头引用命名空间
<%@ Register TagPrefix="fckeditorv2" Namespace="FredCK.FCKeditorV2" Assembly="FredCK.FCKeditorV2" %>
六、引入fckeditor
<FCKeditorV2:FCKeditor id="FCKeditor1" basePath="./FCKeditor/" runat="server"></FCKeditorV2:FCKeditor></FONT>
七、若是还不行
到fckedor的editor/filemanager/browser/connectors/aspx/connectior.aspx 的头上引用包文件中加 Theme="",以下,还有就是upload.aspx文件,到browser目录的upload文件夹中找
<%@ Page language="c#" Inherits="FredCK.FCKeditorV2.FileBrowserConnector" AutoEventWireup="false" Theme="" %>
注意:
一:解决中文问题 除了在WEB。CONFIG中写入GB2312标识 还要在
FCKeditor/editor/filemanager/browser/default/frmresourceslist.html中把方法
Function openfile 里面的 seturl(fileurl) 改为seturl(escape(fileurl));
另外把editor目录下的DIALOG下的FCK——IMAGE和FCK——FLASH等里的
<metahttp-equivXXXXXXXXcharset=utf-8> 换成GB2312
二:使用的时候注意引用FCK的样式表和JS文件不然可能显示不正常或功能不正常
1、集成方法
FCKeditor应用在ASP.NET上,须要两组文件,一组是FCKeditor自己,另外一个是用于ASP.NET的FCKeditor控件(分为1.1和2.0两个版本,这里使用2.0版本)。
1. 将FCKeditor加入到项目中
解压FCKeditor编辑器,获得文件夹fckeditor,复制此文件夹到Web应用的项目下(也能够是子孙目录下)。
解压FCKeditor控件,在其子目录bin/Release/2.0下有一个程序集。在Web应用的项目中引用该程序集。
2. 在页面中使用FCKeditor
有两种方式。
(1)手工编码
在页面中加入ASP.NET指令:
<%@ Register Namespace="FredCK.FCKeditorV2" Assembly="FredCK.FCKeditorV2" TagPrefix="FCKeditorV2" %>
而后在须要的地方加入FCKeditor控件:
<FCKeditorV2:FCKeditor id="FCKeditor1" runat="server" />
(2)集成到Visual Studio工具箱
打开一ASP.NET页面,展开Toolbox,打开右键菜单,选择“Choose Items ...”,在出现的“Choose Toolbox Items”会话框的“.NET Framework Components”选项卡中选择“Browse”,找到并选中FCKeditor程序集,打开后回到“Choose Toolbox Items”窗口,点击“OK”,完成控件导入。
这时,在Toolbox的General分类下出现了一个名为FCKeditor的控件,能够像使用Visual Studio内置控件同样使用它。
3. 配置FCKeditor编辑器路径
在页面中,使用的是FCKeditor控件,该控件须要知道FCKeditor编辑器文件组的路径。有两种配置方法。
(1)配置web.config
在appSettings配置节中加入
<add key="FCKeditor:BasePath" value="~/PathOfFCKeditor/" />
使用这种配置方法后,对于项目中任何一个页面中用到的FCKeditor控件,都不用再配置其BasePath属性。
(2)直接对用到的FCKeditor控件进行配置
在页面代码中设置FCKeditor的属性BasePath为FCKeditor编辑器文件组的路径,或者在Page_Init事件处理器中设置其BasePath的值。
4. 配置FCKeditor编辑器文件上传路径
在web.config的appSettings配置节中加入
<add key="FCKeditor:UserFilesPath" value="~/YourUploadFilePath" />
这样,就完成了FCKeditor向ASP.NET页面的集成工做。
2、配置FCKeditor
按照FCKeditor的默认配置,能够完成一些经常使用的HTML可视化编辑工做,但在实际应用中,还须要对其作进一步的配置。FCKeditor控件的可配置属性很少,且配置后只能做用于一个单一实例。实际上,须要对FCKeditor编辑器文件组中的通用配置文件/fckconfig.js和 ASP.NET专用文件上传管理代码文件/editor/filemanager/connectors/aspx/config.ascx进行配置。
1. 配置控件语言
FCKeditor是自动探测浏览器所使用的语言编码的,其默认语言是英文。修改配置行"FCKConfig.DefaultLanguage = 'en';"为'zh-cn',采用中文为默认语言。
2. 配置控件应用技术
FCKeditor默认是用于php技术的。修改配置行"var _FileBrowserLanguage = 'php';"和"var _QuickUploadLanguage = 'php';"为'aspx',采用ASP.NET技术。
3. 配置Tab键
默认Tab键在FCKeditor中不可用,能够修改配置行"FCKConfig.TabSpaces = 0;"为1,启用Tab键。
4. 定制FCKeditor工具栏
FCKConfig提供两种工具栏配置。在配置行"FCKConfig.ToolbarSets["Default"] = [ ... ];"中定义了使用所有可用按钮的配置(做为工具栏的默认配置)。在配置行"FCKConfig.ToolbarSets["Basic"] = [ ... ];"中定义了一个精简按钮的工具栏配置。实际使用时,默认配置按钮太多,精简配置按钮又太少。所以须要定制工具栏。
配置值[ ... ]中是形式为[[v, v2, .., vN], '/', [ ... ],...](vN表示要显示的按钮名字,'/'表示以后的按钮组在下一行显示)的按钮分组的集合。若是不须要整个分组的按钮,那么就删掉该分组(形式为 [ , , ...]);若是只是不须要分组中的某个按钮,删掉该按钮。
5. 定制可用的文本字体
FCKeditor是外国人作的,默认使用的字体固然也是西文字体了。修改配置行"FCKConfig.FontNames = '...';",加入要使用的中文字体名,如宋体,楷体_GB2312等。
FCKConfig默认使用HTML字体关键字来表示可选的字体大小,这存在着不一样浏览器显示效果不一致的问题。所以,建议修改配置行"FCKConfig.FontSizes = '...';",去掉字体关键字值,加入像素值或磅值。(固然,在网页里定义了全局样式表的话,就不须要修改这项设置了,但应该教会最终用户如何设置字体达到最佳显示效果。)
6. 启用文件上传
FCKeditor提供了很是强大和易用的文件上传功能,可是默认配置里,文件上传功能不可用,这是基于安全的考虑。但我认为访问安全性控制应该由程序来作,不该由控件来作。
在文件config.ascx中,修改CheckAuthentication()的返回值为true。若是但愿上传具备多扩展名的文件,修改 SetConfig()中ForceSingleExtension的值为false。FCKeditor默承认以上传文件、图片、Flash和多媒体四种类型的文件,能够在SetConfig()中对AllowedTypes修改来增减容许的类型(这个类型能够在后面的 TypeConfig["TypeName"]中定义,好比在AllowedExtensions属性中定制本类型容许的上传文件扩展名,在 DeniedExtensions里定制不容许的上传文件扩展名)。
在文件fckconfig.js中,修改配置行"FCKConfig.LinkBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Connector=' + encodeURIComponent( FCKConfig.BasePath + 'filemanager/connectors/' + _FileBrowserLanguage + '/connector.' + _FileBrowserExtension ) ;"为FCKConfig.LinkBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Type=File&Connector=' + encodeURIComponent( FCKConfig.BasePath + 'filemanager/connectors/' + _FileBrowserLanguage + '/connector.' + _FileBrowserExtension ) ;";修改配置行"FCKConfig.LinkUploadURL = FCKConfig.BasePath + 'filemanager/connectors/' + _QuickUploadLanguage + '/upload.' + _QuickUploadExtension ;"为"FCKConfig.LinkUploadURL = FCKConfig.BasePath + 'filemanager/connectors/' + _QuickUploadLanguage + '/upload.' + _QuickUploadExtension + '?Type=File' ;"。(在这个配置文件里,看起来彷佛Type=File是做为默认参数的,但实际上不加这个参数的话,会出错。)
7. 其它配置
对于这两个配置文件中的配置属性,从名字上很容易知道它们所表明的含义,基本上均可以定制。但要注意,属性值的格式要正确。
3、将FCKeditor编辑器文件组ASP.NET化
FCKeditor编辑器文件组包含了用于它所支持的各类应用技术的文件,因此,对于ASP.NET应用来讲,有不少文件是不须要的。
根目录下,只保留文件夹editor,文件fckconfig.js、fckeditor.js、fckpackager.xml、fckstyles.xml和fcktemplates.xml。
子目录editor/filemanager/connectors下,只保留文件夹aspx。
当Asp.Net 验证控件遇到FCKeditor
使用RequiredFieldValidator控件验证FCKeditor是否填写内容的时候会遇到一个问题,
填写了内容以后第一次提交还会提示没有填写内容,这是因为FCKEditor的编辑框采用的是Iframe,每次提交的时候首先要将Iframe的内容复制到文本框内,再提交,可是验证控件验证的是实际的文本框,在没触发提交时,这个内容文本框的内容其实是空的。
换上自定义验证控件CustomValidator
设置ClientValidationFunction="checkFckeditorContent";
利用FCKeditor提供的Javascript API能够解决这个问题
在页面上加入如下脚本
<script type="text/javascript">
//<![CDATA[
var fckeditorContentLength = 0;
function checkFckeditorContent(source, arguments)
{
arguments.IsValid = (fckeditorContentLength > 0);
}
function FCKeditor_OnComplete(editorInstance)
{
editorInstance.Events.AttachEvent('OnBlur', FCKeditor_OnBlur); //附加失去焦点的事件
}
function FCKeditor_OnBlur(editorInstance)
{
fckeditorContentLength = editorInstance.GetXHTML(true).length;
//在FCKeditor失去焦点时,若是内容不为空则隐藏验证提示
if(fckeditorContentLength > 0){
document.getElementById("<%= this.自定义验证控件.ClientID %>").style.display = "none";
}
}
//]]>
</script>
问题到此就解决了。
asp.net 控件验证 FCKeditor发布:dxy 字体:[增长 减少] 类型:转载
FCKEditor是一个很不错的在线编辑器,可称得上完美,可是它有一个问题,就是在使用RequiredFieldValidator进行验证的时候,即便内容不为空,也须要点击两次才能完成
通过查找网上的资料,发现好像是它自己的一个问题,原文以下:
With ASP.Net, I need to submit twice when using the RequiredFieldValidator in a FCKeditor instance
FCKeditor will not work properly with the Required Field Validator when the "EnableClientScript" property of the validator is set to "true" (default). Due to a limitation in the default validation system, you must set it to "false".
If you want to do client side validation, you must use a Custom Validator instead and provide the appropriate validation function, using the FCKeditor JavaScript API.
译文以下(翻译的很差,你们能看懂就好):
问:为何在使用ASP.NET的RequiredFieldValidator时,我须要提交两次
答:当RequiredFieldValidator的EnableClientScript属性被设置成true时,FCKEditor不能很好的支持RequiredFieldValidator,为了解除这个限制,你必须把这个属性设置成为false 若是你但愿使用客户端验证,你必须使用Custom Validator制做一个非空验证来替换RequiredFieldValidator,在其中使用FCKeditor JavaScript API便可。
看了这篇文章,我就去找FCKeditor JavaScript API的文档,发现它为客户端JavaScript的调用提供了一些属性和方法,因而乎,就按上述的回答写了一段JavaScript脚原本完成了验证。
详细解决方法:首先添加Javascript脚本:
复制代码 代码以下:
script language="javascript" type="text/javascript">
var oEditer;
function CustomValidate(source, arguments)
{
var value = oEditer.GetXHTML(true);
if(value=="")
{
arguments.IsValid = false;
}
else
{
arguments.IsValid = true;
}
}
function FCKeditor_OnComplete( editorInstance )
{
oEditer = editorInstance;
}
</script>