RichTextBox in a Single TextBox Among Multiple TinyMCE

Some time ago, I have written an post about integration of TinyMCE editor in ASP.NET website. The same was also published in CodeProject and most visited article of mine. While answering comments there, I got a request from one of reader.

Some time ago, I have wrote an article about integration of TinyMCE editor in ASP.NET website. It was also published in CodeProject and was the most visited article of mine. When answering comments there, I got a request from one of the readers.

His question is, "I have used a TinyMCE Rich TextBox in my application but in my web form I have mulitple mulitiline TextBoxes. What I want is a Rich TextBox bound to only one text box but not all TextBoxes."

Situation

So the solution is here. Let's create a scene as below.

RichTextBox bind to only one text box
Here we need to convert the TextArea for "About" to a Rich Text Editor (WYSIWYG). Let's the view source code for the preceding design. I tried to use simple HTML5 tags. So that other users can also get the advantage of this tutorial.
 

<%@ page language="C#" autoeventwireup="true" codefile="Default.aspx.cs" inherits="_Default" %>

 

<!DOCTYPE html>

<html>

<head runat="server">

    <title>Rich Text Editor in Single TextArea among many</title>

</head>

<body>

    <form id="form1" runat="server">

    <h1>

        Rich Text Editor in Single TextArea among many</h1>

    <fieldset>

        <legend>Profile Update</legend>

        <p>

            <label>

                Name</label>

            <input type="text" id="txtName" runat="server" />

        </p>

        <p>

            <label>

                Gender</label>

            <input type="radio" name="Gender" id="radioMale" runat="server" value="Male" />

            <input type="radio" name="Gender" id="radioFemale" runat="server" value="Female" />

        </p>

        <p>

            <label>

                Email ID</label>

            <input type="text" id="txtEmail" runat="server" />

        </p>

        <p>

            <label>

                About</label>

            <textarea rows="5" cols="50" id="txtAbout" class="Editor" runat="server"></textarea>

        </p>

        <p>

            <label>

                Remarks</label>

            <textarea rows="2" cols="50" id="txtremarks" runat="server"></textarea>

        </p>

        <p>

            <asp:button id="btnSubmit" text="Submit" runat="server" />

            <input type="reset" value="Clear Form" runat="server" />

        </p>

    </fieldset>

    </form>

</body>

</html>

Here we are using TinyMCE version 4.0.xx. This version is a major upgrade and has a completely different look and internal architecture compared to version 3.xx. So here is some difference in its integration.

If you are not familiar with this process, please read our previous article that describes copying the required files in the project directory and inserting a script in more details. Insert the following code before closing the head tag in your HTML page.

<script src="script/tinymce/tinymce.min.js" type="text/javascript"></script>

    <script type="text/javascript">

        tinymce.init({

            selector: ".Editor",

            theme: "modern",

            plugins: ["lists link image charmap print preview hr anchor pagebreak"],                       

        });

 </script>

Notable

Notable and new in the code integration script above is the selector tag. This is new tag included in TinyMCE version 4.0.xx. This gives us the following options.

Do not forget to change the path to Script as per your folder structure. 

  • selector : "textarea"

    This option will convert all TextAreas to be a visual editor. 
     
  • selector : "textarea.Editor"

    This option will select all TextAreas with CSS Class Editor applied.
     
  • selector : h1.Editor

    or div.Editor : This option will change this to an inline editor for H1 or DIV with CSS class name of Editor.

As you see in the code of the scene designed above. You can see that we applied the class Editor that we did not create in any CSS file to one of the TextAreas. Here we used this method.

Older Version

If you are working with TinyMCE version 3.xx, here is the code to be inserted into the Head section of the HTML page. 

<script type="text/javascript" src="script/tiny_mce/tiny_mce.js"></script>

<script type="text/javascript" language="javascript">

        tinyMCE.init({

            // General options             

            // mode: "textareas",     

    // Set mode to Exact.                      

            mode: "exact",               

            // Write the name of ID of TextArea where you want editor to appear in element property.

            elements : "txtRemarks",  

            theme: "advanced",

            plugins: "pagebreak,style,layer,table,save,

            advhr,advimage,advlink,emotions,iespell,inlinepopups",            

        });

</script>

Output

Now, the output of the preceding work is below.

Output

Its perfect.

If you find this article helpful, drop a comment or share with your friends.

+John Bhatt