如何使TinyMCE在UpdatePanel中工作?

jps*_*nyx 14 javascript c# asp.net updatepanel tinymce

我正在尝试做一些许多人似乎能够做到但我无法实现任何解决方案的事情.该TinyMCE的控制工作得很好,在一个asp.net的形式,直到你有一个UpdatePanel,然后回发后坏括起来.我尝试了一些像RegisterClientScriptBlock方法的修复,但仍然不成功,我在回发后仍然失去了tinyMCE控件.

下面是一个完整的测试项目(VS 2008),它在UpdatePanel外部提供一个Control,内部有一个控件,每个项目都有一个按钮来生成回发.同样在项目中我有一个EditorTest控件,其中包含我尝试的一些调用的注释代码,以防它给任何人任何想法.

代码示例

以下是MCE论坛上一些解决方案的一些来源:
AJAX
UpdatePanel

Bru*_*oLM 14

要执行init每次UpdatePanel更改,您需要使用ScriptManager以下命令注册脚本:

// control is your UpdatePanel
ScriptManager.RegisterStartupScript(control, control.GetType(), control.UniqueID, "your_tinymce_initfunc();", true);
Run Code Online (Sandbox Code Playgroud)

注意:你不能exact在init函数上使用mode,你可以使用textareas或者a class selector,否则它将无法正常工作.

你也必须使用

ScriptManager.RegisterOnSubmitStatement(this, this.GetType(), "", "tinyMCE.triggerSave();");
Run Code Online (Sandbox Code Playgroud)

在UpdatePanel的回发中,编辑器内容不会保存在文本框中,因为默认行为仅适用于form.submit,因此当您提交任何内容时,它将在发布之前保存文本.

在获取值的代码背后,您只需要访问TextBox.Text属性.

注意:如果你使用的是.NET GZip,你可能不得不放弃它,我无法使它工作,我必须完全删除它.