TinyMCE med AJAX och partial update

Uppdatering! Jag har nu gjort ett fullständigt exempel på hur man kan använda TinyMCE med Ajax. Länk finns här.

Har kört ASP.NET AJAX nu i en vecka och testat på UpdatePanels. Jag hade textruta med tillhörande html-editor (TinyMCE) och vid delvis uppdatering så laddades inte editorn igen. Lösningen som funkade för mig hittade jag på Moxiecode.

Först så laddar jag in själva biblioteket vid Page_Load()

//Ladda tinyMCE
HtmlGenericControl IncludeTinyMCE = new HtmlGenericControl("script");
IncludeTinyMCE.Attributes.Add("type", "text/javascript");
IncludeTinyMCE.Attributes.Add("src", "js/tiny_mce/tiny_mce.js");
this.Page.Header.Controls.Add(IncludeTinyMCE);

Efter partial upload på UpdatePanel så kallas följande funktion. Jag fick lägga anropet till den i en specialfunktion för animeringen av min UpdatePanel. Men hos Moxiecode föreslår de följande registrering.

ScriptManager.RegisterClientScriptBlock(UpdatePanel1, this.GetType(), "init", "InitTiny();", true);

I funktionen som ritar om text-editor fick jag även lägga till en extra rad som tar bort editorn efter den körs. Annars ritades en ny upp vid varje uppdatering. Det ser kanske konstigt ut att jag kör "mceRemoveControl" precis efter den lagts till men "mceAddControl", men det var det som funkade i mitt fall.

function InitTiny()
{
tinyMCE.execCommand('mceAddControl', false, 'ctl00$mainContentPH$productTabs$tpProductInfo$fvProduct$textBox');
tinyMCE.execCommand('mceRemoveControl', true, 'ctl00$mainContentPH$productTabs$tpProductInfo$fvProduct$textBox');
}

Sökvägen ser ganska lång ut men det beror på att min textarea låg inne i en Tabs-kontroll.

Comments

Har försökt få igång ett enkelt exempel av detta i några timmar nu utan någon direkt framgång. Så fort som jag lägger till updatepanel så sparas inte texten som skrivits in och tinymce försvinner vid postback. Försökt lägga till den igen med RegisterClientScriptBlock utan någon effekt. En alert körs fint med den, men inget händer med editorn. Varför har ingen lagt upp en .zip av ett fungerande exempel när det verkar så svårt att få igång och så många vill veta hur? :( Har du något kort exempel på hur man ska göra?
[…] Jocke var inne och kollade på beskrivningen men fick inte till det. Så nu tänkte jag visa precis hur man kan göra med ett uppdaterad och fullständig kod. […]
Hej Jocke. Jag förstår verkligen din frustation. Det är helt galet svårt att jobba med TinyMCE och Ajax. Ledsen att detta inlägget inte var till så stor hjälp. Hoppas du ska få bättre nytta av den nya länken, med en zip-fil precis som beställdes. ;)