openWYSIWYG-Editor disappears on postback
It is working properly every time the page loads at the first time. However when we do a Postback the editor disappears with just the textarea. The postback is happening due to a dropdown on the page.
<asp:TextBox runat="server" ID="TBClosingInstructions" TextMode="MultiLine" Rows="8" Columns="40" TabIndex="2" Font-Name="Verdana"></asp:TextBox><script language="JavaScript">generate_wysiwyg('TBClosingInstructions');</script>
I would like the editor to remain even after postback. I have tried the following code
if (Page.IsPostBack)
{
this.ClientScript.RegisterStartupScript(this.GetType(), 开发者_高级运维"script", "<script language=\"JavaScript\">generate_wysiwyg('TBClosingInstructions');</script>", true);
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "ClientScript", "<script language=\"JavaScript\">generate_wysiwyg('TBClosingInstructions');</script>", true);
}
Tried both registerStartupScript and registerClientScriptBlock individually to bind the javascript functions in every postback. But this doesn't work.
Is there any alternative? Please suggest.
There are a couple of methods that attach the editor to a textarea.
WYSIWYG.attach('all', mysettings);
This is what I was using which worked well if you content/form was not loaded dynamically.
Looking at the source code it attaches to the load event. This is probably why it isn't being attached.
WYSIWYG_Core.addEvent(window, "load", function generateEditor() { WYSIWYG._generate(id, settings); });
WYSIWYG.attachAll(mySettings);
I found this one works (all textareas), again looking at the source code it looks for every textarea in the DOM and does not attach to an event.
var areas = document.getElementsByTagName("textarea");
for (var i = 0; i < areas.length; i++) {
var id = areas[i].getAttribute("id");
if (id == null || id == "") continue;
this.setSettings(id, settings);
WYSIWYG_Core.includeCSS(this.config[id].CSSFile);
WYSIWYG._generate(id, settings);
}
精彩评论