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. 一个html页面传入参数到另一个html页面用js获取方法

    没错使用以下函数就能够完整的获取到路径里的你想要的参数:function getURLParameter(name) { return decodeURIComponent((new RegExp(' ...

  2. Jenkins修改管理员密码

    前言:Jenkins修改管理员密码,我看了网上所有的教程,竟然全都是拿着一串已经加密好的111111的密文去替代config.xml文件里面的密码,然后大家的密码都是111111!我觉得这种做法实在太 ...

  3. 搭建eureka服务

    1.pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www ...

  4. Navicat for mysql 11.1.20激活

    由于最近工作太忙,一直没有机会分享自己在工作中遇到的困难,今天周日,在出去之前先分享下navicat(版本很重要navicat_trial_11.1.20.0.1449226634)激活. 刚开始我是 ...

  5. C++如何入门

    去 Visual Studiohttps://www.visualstudio.com/zh-hans/?rr=https%3A%2F%2Flink.zhihu.com%2F%3Ftarget%3Dh ...

  6. (整理)使用tomcat搭建HTTP文件下载服务器

    本文是整理,非原创,由网络资料组成上自己踩的坑整理而成. 1. 假设需要下载的文件目录是D:\download1(注意这里写了个1,跟后面的名称区分) 2. 设置 tomcat 的虚拟目录.在 {to ...

  7. 反射型XSS的逆袭之路

    0×00背景 这是一次结合各自技巧的渗透过程,由于原作者的截图不多,我们只是简单叙述一下思路~ 目标是一家本地的游戏公司,起因是找到一个反射型xss,但是却被对方公司忽略,而作者身边的一个妹子也在这家 ...

  8. 每天一个JS 小demo之留言板。主要知识点:DOM方法的理解和运用

    <!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"& ...

  9. Thrift中required和optional

    最近在搞Thrift,对其字段声明中的required关键字有所误解,仔细调试了一下才明白其真实含义. required的意思不是说声明对象时,必须填这个值,而是Thrift在传输(序列化)过程中无论 ...

  10. top的用法

    top命令可以用来方便地观察当前系统中运行的进程的信息,并可以在运行过程中执行改变进程的优先级.更改排序规则.导出状态信息等操作,非常方便. 1.主要选项 -d:后接秒数,状态更新的秒数,默认5秒-b ...