Ok, votre problème est double.Stefy vous a fourni une partie de la réponse, qui est que vous devez initialiser TinyMCE sur le postback en vous inscrivant script de démarrage comme ceci:
using System.Web.UI;
namespace TinyMCEProblemDemo
{
public partial class EditorClean : UserControl
{
protected void Page_Load(object sender, System.EventArgs e)
{
ScriptManager.RegisterStartupScript(this.Page,
this.Page.GetType(), mce.ClientID, "callInt" + mce.ClientID + "();", true);
}
}
}
Le deuxième problème que vous avez est avec votre mise en œuvre d'un contrôle personnalisé. La conception de contrôles personnalisés est hors de portée de cette réponse. Google peut vous aider là-bas.
Vous avez plusieurs instances de votre contrôle sur la page qui peuvent vous causer des problèmes avec le script, car il est rendu plusieurs fois. Voici comment je l'ai modifié votre balisage pour résoudre votre problème (notez nommage dynamique de vos fonctions de script, les contrôles personnalisés doivent être autonomes et le mode: « exact » sur le tinyMCE.init):
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="EditorClean.ascx.cs"
Inherits="TinyMCEProblemDemo.EditorClean" %>
<script type="text/javascript" src="Editor/tiny_mce.js"></script>
<script type="text/javascript">
function myCustomCleanup<%= mce.ClientID%>(type, value) {
if (type == "insert_to_editor") {
value = value.replace(/</gi, "<");
value = value.replace(/>/gi, ">");
}
return value;
}
function myCustomSaveContent<%= mce.ClientID%>(element_id, html, body) {
html = html.replace(/</gi, "<");
html = html.replace(/>/gi, ">");
return html;
}
function callInt<%= mce.ClientID%>() {
tinyMCE.init({
mode: "exact",
elements: "<%= mce.ClientID%>",
theme: "advanced",
skin: "o2k7",
plugins: "inlinepopups,paste,safari",
theme_advanced_buttons1: "fontselect,fontsizeselect,|,forecolor,backcolor,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,bullist,numlist,|,outdent,indent,blockquote,|,cut,copy,paste,pastetext,pasteword",
theme_advanced_buttons2: "",
theme_advanced_buttons3: "",
theme_advanced_toolbar_location: "top",
theme_advanced_toolbar_align: "left",
cleanup_callback: "myCustomCleanup<%= mce.ClientID%>",
save_callback: "myCustomSaveContent<%= mce.ClientID%>"
});
}
</script>
<textarea runat="server" id="mce" name="editor" cols="50" rows="15">Enter your text here...</textarea>
Cela n'a rien à voir avec mon problème où mes postbacks travaillent, il est la mise en page de tinyMCE que ne reconstruit pas. L'encodage de la balise <> corrige le problème de validationRequest et je l'ai déjà fait. L'exemple de code fourni n'inclut pas de telles erreurs. –