最近因为工作的需要突然要做一个类似于新闻系统的东西,要求能够发布信息,于是就涉及到了在线编辑。目前现成的在线编辑控件有很多,如FTB,RichTextBox,FCK,CuteEditor等。经过再三考虑,最终我选择了FCK,不为别的,就因为它是开源的,且功能和兼容性都不赖。

但是使用起来还是经过了一番周折啊,现把开始的一些过程及遇到的问题记录下来。

第一步当然是先去http://sourceforge.net/下载一份代码回来啦,或者直接打http://www.fckeditor.net/也行,反正能下到就行。目前的最近版本是2.0。下载的时候要注意的是,上面有FCKeditor 2.0,FCKeditor.Packager,FCKeditor.Net,Fckeditor.Java,FCKeditor.Plone这样几个文件,我们是用在.NET中,肯定是要下载FCKeditor.NET了,这一看名字就知道,可是还不止这些,必须同时下载FCKeditor 2.0,这里的FCKeditor.NET其实只是一个控件而已,其用到的客户端代码必须都在FCKeditor 2.0中。我第一次用就犯了这么一个错误,结果运行后什么都没有,就一个错误提示!

接下来就是要把FCKeditor放到自己的项目中去了,下载下来的文件中包含了几个文件夹和各种后缀的fckeditor文件,其中以下划线开头的文件都可以删掉以节省空间,另外,其他一些与我们应用无关的文件也都可以删掉,最后就剩下如下图所示的几个文件。
fckeditor.png
这些文件夹可以直接放在项目目录的根目录中使用,这样一来只要将FCKeditor控件的BasePath属性设为项目所在目录名即可,但除了文件夹外还有文件在,毕竟会给我们的文件管理带来混乱,所以我建议将它们都放到一目录中(文件夹名称自己定,此处我用的是editor文件夹)。

好了,我们先来试一下这个控件到底是否可行吧。

在vs.net中新建一个WEB项目,然后在工具栏中添加一个FckEditor控件,并将其拖动到我们的测试页面中并对其进行一些简单的设定。
fckset.png
其中的Value值为Fck编辑中显示的编辑内容,ToolbarSet属性此处暂时设为Default,以下的内容中我会讲讲怎么自己设置工具栏,BasePath此处为空,但是如果你如前面所说的把文件放在根目录下的话只要在此处显示项目目录的便可,但这可能会给部署带来一定的麻烦,所以我推荐用另一种更为通用的办法:在PageLoad事件中设置它的值,而值的获取可以根据当前项目所在目录来获取。

1string strEditorBase ="";
2string strPathInfo =  Request.ServerVariables["PATH_INFO"];
3strPathInfo = strPathInfo.Substring( 0, strPathInfo.LastIndexOf( "/" ) + 1);
4strEditorBase = strPathInfo + "editor/";
5

变量strEditorBase的值便是FCKeditor文件所在的目录,当然最好是将这段代码写到一个独立的类中,因为这个目录将会在多处用到,比如在控件皮肤的设置时就用到。

运行一下试试看,效果是不是已经出来了啊。接下来我将讨论一下如何配置编辑器