主题: asp.net ajax中调用kindeditor的方法
作者: 吴言, 发布日期: 2010-08-31 00:36:35, 浏览数: 8245

经过一天一夜的研究,参考了台湾章立民先生的《asp.net AJAX WEB应用开发秘诀》一书,并结合Kindeditor的文档,终于解决了在asp.net ajax UpdatePanel回发时调用kindeditor的问题。现在显示正常,其它功能暂时未测试。具体原来,我自己也是一知半解的,暂时还没有全面了解清楚,总体而言,是和asp.net页面的生命周期有关系,有兴趣的朋友,可自行查阅相关资料。

 

现将我的解决办法给大家说一下:

 

先建立一个js文件,命名随意,(我的命名为:ClientEventOrder.js,位置于WEB根目录),内容如下:

 

var app = Sys.Application;

function ApplicationInit(sender)
{
  var prm = Sys.WebForms.PageRequestManager.getInstance();
 
  if (!prm.get_isInAsyncPostBack())
  {
      prm.add_pageLoaded(PageLoaded);
  }
}

function pageLoad()
{
    KE.init({
  id : 'content_1',
  afterCreate : function(id) {
      KE.util.focus(id);
  }
 });

    KE.create('content_1');   
}

function PageLoaded(sender, args)
{
    KE.create('content_1');

}

 

然后在aspx文件中调用,代码如下:

    <asp:ScriptManager ID="ScriptManager1" runat="server"
        EnableScriptGlobalization="True" >
                <Scripts>
                    <asp:ScriptReference Path="~/ClientEventOrder.js" />
                    <asp:ScriptReference Path="KindEditor/kindeditor.js" />
                </Scripts>
        </asp:ScriptManager>

PS:感谢Kindeditor开发人员,几年前我就发现这个漂亮的在线编辑器了,非常喜欢,只是一直没有用。

昨天我差点准备放弃了,使用ajax自带的editor。

但界面实在无法和Kindeditor相比,所以今天又查了一天资料。

现在终于解决了,与大家共享一下。

 

再次感谢!

 

 

作者: 夏日寒風, 发布日期: 2010-10-01 21:18:45
UpdatePanel我个人认为是个很垃圾的东西,要实现AJAX调用KD,应该还有很多方法
回复
作者: 脚印, 发布日期: 2011-01-26 17:38:35
var app = Sys.Application;
function ApplicationInit(sender) {
    var prm = Sys.WebForms.PageRequestManager.getInstance();

    if (!prm.get_isInAsyncPostBack()) {
        prm.add_pageLoaded(PageLoaded);
    }
}
function pageLoad() {


    KE.init({
        id: 'fContent',
        imageUploadJson: '../../upload_json.ashx',
        fileManagerJson: '../../file_manager_json.ashx',
        allowFileManager: true,
        afterCreate: function(id) {
            KE.util.focus(id);
        }
    });
    timename = setTimeout("KE.create('fContent');", 50); 
}

function PageLoaded(sender, args) {
    KE.create('fContent');
}

需要注意红色部分,摸索了一下午

解决第一次加载的时候 不能显示工具栏的问题

回复
作者: sophia, 发布日期: 2011-08-22 22:45:29

setTimeout("KE.create('fContent');", 50);


你的这部分很重要。我是用ajax读取html,而后生成编辑器的,结果编辑器生成了,但是无法获得焦点,点击按钮,都显示报错,只有在点击源代码或者全屏后才可以有焦,看样子代码必须在等编辑器完全加载完在执行create,我猜的。不过加了你这句,我的确搞定困扰一天的问题啦!谢谢作者!!!!!

回复
发表新帖 发表回复