PassionateDeveloper
PassionateDeveloper

Reputation: 15158

tinymce get HTML code when postback

I have the tinymce -control as a WYSIWYG-Editior in my asp.net page.

When I have e.g. a Text in Bold, after the Postback it is shown as

 "<p><strong>asd</strong></p>" 

in the textarea instead of the bolded text.

Any ideas?

My code:

    <script type="text/javascript" src="../scripts/tiny_mce/tiny_mce.js"></script>
<script type="text/javascript">
    tinyMCE.init({
        mode: "textareas",
        theme: "simple",
        encoding: "xml"
    });
</script>


<textarea runat="server" id="txtareaTextActivity" name="content" cols="48" rows="5">  </textarea>

Upvotes: 6

Views: 5184

Answers (8)

shahroz
shahroz

Reputation: 369

i have same problem.for fix it you mast add script code for element create post back . my button create post back,I add it OnClientClick() :

<asp:LinkButton ID="lbnSave" OnClick="lbnSave_Click" ToolTip="Add New" OnClientClick="dotim()"
                            runat="server">save</asp:LinkButton>

and script is:

function dotim() {
       tinyMCE.triggerSave();
      } // this is my attempt at a fix

Upvotes: 0

Ravimallya
Ravimallya

Reputation: 6610

I also had the same problem. But fixed it by decoding the textarea text each time in page load in c# as below:

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
          // Some stuff
        }
        txtDescription.Text = HttpUtility.HtmlDecode(txtDescription.Text);
    }

I'm using encoding: "xml" in tinymce init function. .net version 4.5.1.

Hope it helps someone.

Upvotes: 3

Ahmed Fouad
Ahmed Fouad

Reputation: 1

Step 1: in TinyMCE Configuration use

encoding: "xml",

Step 2: in Java Script after init the TinyMCE use this code, where 'textarea.RichText' is the class selector for the text area

tinymce.init(TMCEconfig);

 // Fix Html Decodeing
    $('textarea.RichText').each(function () {
            var $this = $(this);
            var x = $this.text();
            $this.html(x)
    });

Step 3 : in Server code, when setting the value of the text area , decode the text first For example in ASP.net use

textarea.text = HttpUtility.HtmlDecode(Source)

Upvotes: 0

Hallgeir Engen
Hallgeir Engen

Reputation: 971

Change the init function and set encoding to an empty string.

<script type="text/javascript">
    tinyMCE.init({
        mode: "textareas",
        theme: "simple",
        encoding: ""
    });
</script>

This is default setting, and worked in my case. See documentation on this page http://www.tinymce.com/wiki.php/Configuration3x:encoding

Upvotes: -1

Madhumitha Kumar
Madhumitha Kumar

Reputation: 21

This happens when the editor control in placed within Update Panel. Try to remove update panel and check. It worked for me.

Upvotes: 2

SeeSharp
SeeSharp

Reputation: 698

You can use this code for solving your problem:

TextAreaID.Text = Server.HtmlDecode("<p>hello</p>");

I found it in this post : https://stackoverflow.com/a/8029637/1509986

If you get some security errors you can use

validateRequest="false"

in your page.

Upvotes: 2

Sanaa
Sanaa

Reputation: 9

Try passing your js code to the ScriptManager. Worked for me.

string script = "alert('something')";
ScriptManager.RegisterClientScriptBlock(UpdatePanelSend, typeof(UpdatePanel), "jscript", script, true);

http://snippets.dzone.com/posts/show/6725

Hope this helps.

Upvotes: 0

PassionateDeveloper
PassionateDeveloper

Reputation: 15158

After hours and hours of search, there is no way of this, it's an unsolved bug until now. So I had to switch to another WYSIWYG-Editor.

Upvotes: 0

Related Questions