在DWZ框架中整合kindeditor复文本框控件

今天上午在DWZ框架中整合kindeditor复文本框控件,发现上传图片是老是提示 “上传中,请稍候...”,上网查看别人说可能是文件路径问题,在想以前在其他项目中用这个控件一直没问题,到这里怎么会出现这个错误呢?

于是从源头一路查找过去, 找到上传配置 uploadJson: ‘/Scripts/kindeditor-4.1.4/asp.net/upload_json.ashx‘,于是打开上传文件的upload_json.ashx文件,发现context.Response.Write(JsonMapper.ToJson(result));这句中的JsonMapper命名空间找不到,由于打开以前其他项目,才发现原来少引用一个LitJSON.dll文件,所以在此记录一下分享给其他小伙伴,如果你也在DWZ框架中整合kindeditor控件的话,可按下面步骤进行:

(1).引用LitJSON.dll文件.

(2).在 dwz.ui.js文件中找到

 if ($.fn.xheditor) {
        $("textarea.editor", $p).each(function () {
            var $this = $(this);
            var op = { html5Upload: false, skin: ‘vista‘, tools: $this.attr("tools") || ‘full‘ };
            var upAttrs = [
                ["upLinkUrl", "upLinkExt", "zip,rar,txt"],
                ["upImgUrl", "upImgExt", "jpg,jpeg,gif,png"],
                ["upFlashUrl", "upFlashExt", "swf"],
                ["upMediaUrl", "upMediaExt", "avi"]
            ];

            $(upAttrs).each(function (i) {
                var urlAttr = upAttrs[i][0];
                var extAttr = upAttrs[i][1];

                if ($this.attr(urlAttr)) {
                    op[urlAttr] = $this.attr(urlAttr);
                    op[extAttr] = $this.attr(extAttr) || upAttrs[i][2];
                }
            });

            $this.xheditor(op);
        });
    }

在这个方法下面继续添加下面方法

 $("textarea.kindeditor", $p).each(function () {
        $.getScript(‘/Scripts/kindeditor-4.1.4/kindeditor-min.js‘, function () {
            KindEditor.basePath = ‘/Scripts/kindeditor-4.1.4/‘;
            var editor1 = KindEditor.create(‘#content‘, {
                cssPath: ‘/Scripts/kindeditor-4.1.4/plugins/code/prettify.css‘,
                uploadJson: ‘/Scripts/kindeditor-4.1.4/asp.net/upload_json.ashx‘,
                fileManagerJson: ‘/Scripts/kindeditor-4.1.4/asp.net/file_manager_json.ashx‘,
                allowFileManager: true,
                items: [
                            ‘preview‘, ‘|‘, ‘fontname‘, ‘fontsize‘, ‘|‘, ‘forecolor‘, ‘hilitecolor‘, ‘bold‘, ‘italic‘, ‘underline‘,
                            ‘removeformat‘, ‘lineheight‘, ‘strikethrough‘, ‘|‘, ‘justifyleft‘, ‘justifycenter‘, ‘justifyright‘, ‘insertorderedlist‘,
                            ‘insertunorderedlist‘, ‘indent‘, ‘outdent‘, ‘quickformat‘, ‘|‘, ‘image‘, ‘hr‘, ‘baidumap‘, ‘link‘, ‘|‘, ‘about‘],
                afterCreate: function () {
                    var self = this;
                    KindEditor.ctrl(document, 13, function () {
                        self.sync();
                        K(‘form[name=example]‘)[0].submit();
                    });
                    KindEditor.ctrl(self.edit.doc, 13, function () {
                        self.sync();
                        KindEditor(‘form[name=example]‘)[0].submit();
                    }); KindEditor(‘button[name=getHtml]‘).click(function (e) {
                        document.getElementById("NewsContentC").value = editor1.html();
                    });
                }
            });
            prettyPrint();
        });
    });

    if ($.fn.uploadify) {
        $(":file[uploader]", $p).each(function () {
            var $this = $(this);
            var options = {
                uploader: $this.attr("uploader"),
                script: $this.attr("script"),
                cancelImg: $this.attr("cancelImg"),
                fileDataName: $this.attr("fileDataName"),
                queueID: $this.attr("fileQueue") || "fileQueue",
                fileDesc: $this.attr("fileDesc") || "*.jpg;*.jpeg;*.gif;*.png;*.pdf",
                fileExt: $this.attr("fileExt") || "*.jpg;*.jpeg;*.gif;*.png;*.pdf",
                folder: $this.attr("folder"),
                auto: true,
                multi: true,
                onError: uploadifyError,
                onComplete: $this.attr("onComplete") || uploadifyComplete,
                onAllComplete: uploadifyAllComplete
            };
            if ($this.attr("onComplete")) {
                options.onComplete = DWZ.jsonEval($this.attr("onComplete"));
            }
            if ($this.attr("onAllComplete")) {
                options.onAllComplete = DWZ.jsonEval($this.attr("onAllComplete"));
            }
            if ($this.attr("scriptData")) {
                options.scriptData = DWZ.jsonEval($this.attr("scriptData"));
            }
            $this.uploadify(options);
        });
    }

(3).在页面上添加

<!--kindeditor 开始-->
<link href="@Url.Content("~/Scripts/kindeditor-4.1.4/themes/default/default.css")" rel="stylesheet" type="text/css"/>
<link href="@Url.Content("~/Scripts/kindeditor-4.1.4/plugins/code/prettify.css")" rel="stylesheet" type="text/css"/>

<script src="@Url.Content("~/Scripts/kindeditor-4.1.4/kindeditor.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/kindeditor-4.1.4/lang/zh_CN.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/kindeditor-4.1.4/plugins/code/prettify.js")" type="text/javascript"></script>
<!--kindeditor 开始-->

(4).在页面适合位置添加

<textarea id="content" name="content" tools="basic" style="width: 680px; height: 200px;" class="kindeditor">
</textarea>

另外,也可以定义一个公共变量,把kindeditor 配置中参数在页面上进行配置。

<script type="text/javascript">
    var GV = {}
    GV.kindeditor = { basePath: ‘/Scripts/kindeditor-4.1.4/‘, upload: ‘/Scripts/kindeditor-4.1.4/asp.net/upload_json.ashx‘, filemanager: ‘/Scripts/kindeditor-4.1.4/asp.net/file_manager_json.ashx‘ };
</script>
时间: 2024-11-05 13:34:17

在DWZ框架中整合kindeditor复文本框控件的相关文章

XCODE中使用Main.Storyboard拉入控件并实现事件(Swift语言)

如何在XCODE中的Main.Storyboard内拉入控件并实现一个简单的效果呢?本人由于刚接触Swift语言不久,对于IDE的操作还是很生疏,不懂了就在网上参考了网上前辈们的文章.以下我将演示如何用Swift语言配合Main.Storyboard演示一个小例子,对于新建一个SingleView Application在这里就不多说了. 创建好的应用程序已经自动创建好了一个和Main.Storyboard连接好的ViewController. 接下来我们在Main.Storyboard中的Vi

iOS中如何让TextView和TextField控件支持return键收起输入法

TextView和TextField控件是iOS中负责接收用户输入的控件,那当用户输入完成时怎么收起面板呢? 1.TextView和TextField控件获得焦点之后的第一反应就是弹出输入法面板: 2.让TextView和TextField失去焦点的方法是调用resignFirstResponder. 3.在TextView(shouldChangeTextInRange)和TextField(shouldReturn)方法中实现.

iOS中UITableViewController自带的刷新控件

iOS中UITableViewController自带的刷新控件 一.引言 在iOS开发中,使用tableView的界面,大多会用到一个下拉刷新的的控件,第三方库中,我们一般会选择比较好用的MJRefresh,其实,在iOS6之后,系统为我们提供了一个原生的刷新控件,使用起来非常方便,只是制定性不强,如果我们没有复杂的需求,使用UIRefreshControl也是不错的一个选择. 二.UITableViewController 相对于UIViewController,UITableViewCon

将MenuStrip控件中的信息添加到TreeView控件中【转载】

本文详细介绍怎样将MenuStrip控件中的信息添加到TreeView控件中 首先在WinForm窗体中添加一个MenuStrip控件和TreeView控件,根据个人的爱好把控件布局好后.在窗体的加载事件中(根据自己的情况而定)添加如下的代码: /// <summary>   /// 窗体加载时事件   /// </summary>   /// <param name="sender"></param>   /// <param n

当前线程不在单线程单元中,因此无法实例化 ActiveX 控件

"/"应用程序中的服务器错误. 当前线程不在单线程单元中,因此无法实例化 ActiveX 控件"c552ea94-6fbb-11d5-a9c1-00104bb6fc1c". 说明: 执行当前 Web 请求期间,出现未经处理的异常.请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息. 异常详细信息: System.Threading.ThreadStateException: 当前线程不在单线程单元中,因此无法实例化 ActiveX 控件"

定时器NSTimer放在主线程中如何解决与其他UI控件的冲突

在ios应用中  当定时器NSTimer在主线程中,可能会与其他UI控件产生冲突,比如广告栏的自动滚动,比如在当前页面中有一个textView,滚动时可能会导致定时器停止,这是为什么呢? 因为同在主线程中,系统会优先处理用户的拖动,那么就造成定时器的卡住 停止现象,怎么做呢? 需要把定时器NSTimer对象 放到 RunLoop循环中,就可以解决这个问题. [[NSRunLoop mainRunLoop]addTimer: self.timer toMode:NSRunLoopCommomMod

整合GUI设计程序界面的控件DbNetGrid

最近发现MDT推出去的系统的有不同问题,其问题就不说了,主要是策略权限被域继承了.比如我们手动安装的很多东东都是未配置壮态,推的就默认为安全壮态了,今天细找了一下,原来把这个关了就可以了. 整合GUI设计程序界面的控件DbNetGrid

将Excel中的数据读入到GridView控件中

使用Excel文件作为数据源,其实现的代码为: Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("excel.xls") + "; Extended Properties=Excel 8.0; 实例代码: private DataSet CreateDataSource()    {        string strCon;        strCon = "Provider

C#中数据源绑定DataSource以及相关控件(DataGridView)的使用总结

我们在编程过程中,会涉及到表格数据的显示,存储等,就可能涉及到DataGridView,DataSource, DataTable等概念. 下面我就我自己模糊的一些知识点串讲以下: 1)首先我要讲的是一些控件: Control: 控件基类,有一个DataBindings对象,它是一个ControlBindingCollection类,这个类继承与BindingsCollection,里面有一个Binding的列表对象,其中Binding对象时一个记录了属性名,数据源,数据成员等的对象.还有个Bi