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.
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({
-
-
-
- mode: "exact",
-
- 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.
Its perfect.
If you find this article helpful, drop a comment or share with your friends.