1.首先kindeditor这个插件需要配合着asp.net的自生带的控件textbox来实现

2.首先前台界面代码

 <f:FormRow runat="server">
<Items>
<f:ContentPanel ID="contentpanel1" runat="server" Height="500px" Width="800px" Title="项目内容">
<asp:TextBox runat="server" ID="kindeditor1" Width="800px" Height="500px" TextMode="MultiLine"
Style="visibility: hidden;"></asp:TextBox>
</f:ContentPanel>
</Items>
</f:FormRow>

这里以fineui中的控件为例

3.前台需要添加一些js代码如下所示

<%
KindeditorModel kmo = new KindeditorModel();
kmo.EditorType = KindeditorModel.EditorMode.高级;
kmo.UrLstr = "/res/kindeditor";
kmo.EditorId = kindeditor1.ClientID;
kmo.AllowFileManager = true;
kmo.AllowFileUpload = true;
kmo.AllowFlashUpload = true;
kmo.AllowImageUpload = true;
kmo.AllowMediaUpload = true;
KindeditorHelper kh = new KindeditorHelper(kmo);
%>
<%=kh.GetLoadJs() %>
<script type="text/javascript">
Ext.onReady(function () {
<%=kh.CreatKind() %>
}); </script>

4.后台想要获取到这个textbox里面的值,需要在按钮控件上面添加一个OnClientClick方法如下所示

  

  <Toolbars>
<f:Toolbar runat="server" Position="Bottom">
<Items>
<f:ToolbarFill ID="ToolbarFill1" runat="server">
</f:ToolbarFill>
<f:Button ID="Button_save" runat="server" ValidateForms="form_Edit" Text="保存" Icon="SystemSaveNew"
OnClick="Button_save_OnClick" OnClientClick="getHtmlValue()">
</f:Button>
</Items>
</f:Toolbar>
</Toolbars>

这样后台就可以获取到这个控件里面的值了

5.这个getHtmlValue()这个方法封装在kindeditorHelper中,因为想要应用这个插件需要一个kindeditorHelper。这个放在code文件夹中,具体内容如下所示

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace jr.web.code
{
public class KindeditorHelper
{
private KindeditorModel model;
public KindeditorHelper(KindeditorModel km)
{
model = km;
} public string GetLoadJs()
{
return @"<link rel='stylesheet' href='" + model.UrLstr + @"/themes/default/default.css' />
<link rel='stylesheet' href='" + model.UrLstr + @"/plugins/code/prettify.css' />
<script charset='utf-8' src='" + model.UrLstr + @"/kindeditor-all-min.js'></script>
<script charset='utf-8' src='" + model.UrLstr + @"/lang/zh_CN.js'></script>
<script> var editor;
function getHtmlValue() {{
// 同步数据后可以直接取得textarea的value
editor.sync();
}} function resetHtmlValue() {{
// 同步数据后可以直接取得textarea的value
editor.html('');
}}
</script>";
} public string CreatKind()
{
string js = string.Format(@" editor = KindEditor.create('#{0}', {{
items : [{1}],
uploadJson: '{2}/asp.net/upload_json.ashx',
fileManagerJson: '{2}/asp.net/file_manager_json.ashx',
{3}
}});
{4}
prettyPrint();
",
model.EditorId, GetEditorType(model.EditorType), model.UrLstr, GetAllStr(), model.ReadOnly ? "editor.readonly(true);" : string.Empty); return js;
} private string GetAllStr()
{
string allowFileManagerStr = model.AllowFileManager ? "allowFileManager: true," : string.Empty;
string allowImageUploadStr = model.AllowImageUpload ? string.Empty : "allowImageUpload:false,";
string allowFlashUploadStr = model.AllowFlashUpload ? string.Empty : "allowFlashUpload:false,";
string allowMediaUploadStr = model.AllowMediaUpload ? string.Empty : "allowMediaUpload:false,";
string allowFileUploadStr = model.AllowFileUpload ? string.Empty : "allowFileUpload:false,";
string allStr = GetDeliveryLanguage(model.LanguageType) +
allowFileManagerStr +
allowImageUploadStr +
allowFlashUploadStr +
allowMediaUploadStr +
allowFileUploadStr; return allStr;
} /// <summary>
/// 获取国际化
/// </summary>
/// <param name="delivery"> 国际化名称</param>
/// <returns></returns>
private string GetDeliveryLanguage(KindeditorModel.LanguageMode delivery)
{
switch (delivery)
{
default:
return string.Empty;//默认简体中文
case KindeditorModel.LanguageMode.English:
return "langType:'en',";
case KindeditorModel.LanguageMode.繁體中文:
return "langType:'zh_TW',";
case KindeditorModel.LanguageMode.Korean:
return "langType:'ko'";
case KindeditorModel.LanguageMode.Arabic:
return "langType:'ar',";
} } private string GetEditorType(KindeditorModel.EditorMode mode)
{
switch (mode)
{
case KindeditorModel.EditorMode.普通:
return @"'fontname', 'fontsize', '|', 'forecolor', 'hilitecolor', 'bold', 'italic', 'underline',
'removeformat', '|', 'justifyleft', 'justifycenter', 'justifyright',
'|', 'emoticons', 'image', 'link', 'fullscreen'"; case KindeditorModel.EditorMode.仅表情:
return @"'emoticons'"; default: //默认高级
//case KindeditorModel.EditorMode.高级:
return @" 'source', '|', 'undo', 'redo', '|', 'preview', 'print', 'template', 'code', 'cut', 'copy', 'paste',
'plainpaste', 'wordpaste', '|', 'justifyleft', 'justifycenter', 'justifyright',
'justifyfull', 'insertorderedlist', 'insertunorderedlist', 'indent', 'outdent', 'subscript',
'superscript', 'clearhtml', 'quickformat', 'selectall', '|', 'fullscreen', '/',
'formatblock', 'fontname', 'fontsize', '|', 'forecolor', 'hilitecolor', 'bold',
'italic', 'underline', 'strikethrough', 'lineheight', 'removeformat', '|', 'image', 'multiimage',
'flash', 'media', 'insertfile', 'table', 'hr', 'emoticons', 'baidumap', 'pagebreak',
'anchor', 'link', 'unlink'";//, '|', 'about' //去掉关于编辑器说明
//AllowFileManager = true; case KindeditorModel.EditorMode.文本:
return @"'fontname', 'fontsize', '|', 'forecolor', 'hilitecolor', 'bold', 'italic', 'underline',
'removeformat', '|', 'justifyleft', 'justifycenter', 'justifyright','link', 'fullscreen'"; case KindeditorModel.EditorMode.视频:
return @" 'media'";
//AllowMediaUpload = false; } return "";
} } public class KindeditorModel
{
private string _editorId = "kindeditor"; /// <summary>
/// 控件id名称
/// </summary>
public string EditorId
{
get { return _editorId; }
set { _editorId = value; }
} /// <summary>
/// 语言类型
/// </summary>
public enum LanguageMode
{
English, 简体中文, 繁體中文, Korean, Arabic
} /// <summary>
/// 默认语言
/// </summary>
public LanguageMode _language = LanguageMode.简体中文; /// <summary>
/// 国际化
/// </summary>
public LanguageMode LanguageType
{
get { return _language; }
set { _language = value; }
} /// <summary>
/// 控件模式枚举
/// </summary>
public enum EditorMode
{
仅表情, 高级, 普通, 文本, 视频
} /// <summary>
/// 默认模式
/// </summary>
private EditorMode mode = EditorMode.高级; /// <summary>
/// 控件模式
/// </summary>
public EditorMode EditorType { get; set; } #region 控件属性 /// <summary>
/// 路径(默认为../kindeditor),只设置一次就可以。
/// </summary>
public string UrLstr
{
get { return _Url; }
set { _Url = value; }
}
private string _Url = "../kindeditor"; /// <summary>
/// true为只读模式
/// </summary>
public bool ReadOnly
{
get;
set;
} /// <summary>
/// 是否可以浏览服务器文件(浏览图片,视频等文件)
/// </summary>
public bool AllowFileManager
{
get;
set;
} /// <summary>
/// true时显示图片上传按钮。
/// </summary>
public bool AllowImageUpload
{
get;
set;
} /// <summary>
/// true时显示Flash上传按钮。
/// </summary>
public bool AllowFlashUpload
{
get;
set;
} /// <summary>
/// true时显示视音频上传按钮。
/// </summary>
public bool AllowMediaUpload
{
get;
set;
} /// <summary>
/// true时显示文件上传按钮。
/// </summary>
public bool AllowFileUpload
{
get;
set;
} #endregion
}
}

 以上就是kindeditor插件的具体使用方法,希望大家受用,主要注意的是其中的js方法和封装的类,还有在kindeditorHelper这个里面的一些封装的方法。

 

Kindeditor编辑插件的使用的更多相关文章

  1. Grid行编辑插件

    //操作列不显示应该就是autoLoad的问题.         Ext.onReady(function () {             Ext.BLANK_IMAGE_URL = "E ...

  2. WordPress 前端投稿/编辑插件 DJD Site Post(支持游客和已注册用户)

    转自:http://www.wpdaxue.com/front-end-publishing.html 说到前端用户投稿,倡萌之前推荐过3个不错的插件: WordPress匿名投稿插件:DX-Cont ...

  3. Eclipse 安装mybatis的编辑插件

    1.MyEditor安装的方式 Eclipse 安装mybatis的编辑插件有以下4种方式,您可以使用下列方法之一来安装MyBatis的编辑器: Eclipse 3.7的(市场客户机安装):此图像拖放 ...

  4. eclipse安装Veloeclipse(Velocity编辑插件)

    eclipse安装Veloeclipse(Velocity编辑插件) Help-->install new software-->Add 增加 Name:Veloeclipse Value ...

  5. kindeditor自定义插件插入视频代码

    kindeditor自定义插件插入视频代码 1.添加插件js 目录:/kindeditor/plugins/diy_video/diy_video.js KindEditor.plugin('diy_ ...

  6. jquery编辑插件tinyMCE的使用方法

    jquery编辑插件tinyMCE是一个非常容易集成到您系统的一个html编辑插件,它不像FckEditor那样需要针对专门的后台语言集成,tinyMCE既能做到轻松集成asp.net,php,jav ...

  7. WordPress用户角色及其权限管理编辑插件:User Role Editor汉化版

    如果Wordpress默认的用户角色及权限不能满足您的需求,又觉得修改代码编辑用户权限太麻烦.那不妨试试User Role Editor,Wordpress用户角色及其权限管理编辑插件. User R ...

  8. 使用 CKEditor编辑插件

    1, 安装方法 下载CKEditor插件,然后解压到对应的文件中.建议解压到JS文件夹下面的CKEditor这个文件夹下.下载地址 : http://down.chinaz.com/soft/2516 ...

  9. kindEditor编写插件遇到的问题

    kindEditor是一个功能强大的在线文本编辑器,而且提供了插件扩展功能,更好的满足用户各方面的需求.在项目中,我们就有如此的需求:在kindEditor编辑器中,添加一条下划线,并且在下划线的中间 ...

随机推荐

  1. Docker 镜像小结 - 每天5分钟玩转 Docker 容器技术(21)

    本节我们对 Docker 镜像做个小结. 这一部分我们首先讨论了镜像的分层结构,然后学习了如何构建镜像,最后实践使用 Docker Hub 和本地 registry. 下面是镜像的常用操作子命令: i ...

  2. PHP基础入门(一)---世界上最好用的编程语言

    作为一名程序员,我们应该都听过这样一个梗:PHP编程语言,是世界上最好用的编程语言~~~下面来和大家看一下,什么是PHP↓↓↓ PHP PHP又名超文本预处理器,是一种通用开源脚本语言.PHP主要适用 ...

  3. log4j 在项目中的详细配置

    1.添加log4j 包 2.首先在src目录下添加log4j.properties文件 log4j.rootLogger=debug, stdout, R log4j.appender.stdout= ...

  4. [0] C# 扩展方法(Extension Method)

    有时有这样的情况,有一个类,你不能修改它,但你又想对它扩展(添加一个方法),这个时候就可以用到扩展方法了.请看下面的例子: using System;using System.Collections. ...

  5. Python原理 -- 深浅拷贝

    python原理 -- 深浅拷贝 从数据类型说开去 str, num : 一次性创建, 不能被修改, 修改即是再创建. list,tuple,dict,set : 链表,当前元素记录, 下一个元素的位 ...

  6. ionic 使用了 crosswalkwebview 所产生的bug 及 解决方案

    一.问题产生: 在ionic app 优化方案中,我在前之前的博文中提到使用 --crosswalkwebview: 使用了crosswalkwebview后,app的显示及兼容效果确实很不错,虽然a ...

  7. 如何在phpstorm中安装xdebug调试工具

    用习惯了Visio Studio的调试工具,如果写个php用phpstorm没有调试工具,觉得还缺点什么.接下来就讲解一下如果安装xdebug,最好发现这个插件真好用! 1.下载xdebug.tar: ...

  8. 自定义分布式RESTful API鉴权机制

    微软利用OAuth2为RESTful API提供了完整的鉴权机制,但是可能微软保姆做的太完整了,在这个机制中指定了数据持久化的方法是用EF,而且对于用户.权限等已经进行了封装,对于系统中已经有了自己的 ...

  9. TortoiseGit使用SSH

    Windows TortoiseGit使用SSH连接 1 找到TortoiseGit自带的Puttygen工具 2.1 如果未生成过SSHKey,选择Generate(生成的过程中记得移动鼠标) 2. ...

  10. jquery 表格行计算

    表格行计算 总金额: function jisuanTrJinE(obj){ var curTab = $(obj).closest("table"); var curTr = $ ...