Telerik is a leading vendor of ASP.NET AJAX, ASP.NET MVC, Silverlight, WinForms and WPF controls and components, as well as .NET Reporting, .NET ORM , .NET CMS, Code Analysis, Mocking, Team Productivity and Automated Testing Tools. Building on its expertise in interface development and Microsoft technologies, Telerik helps customers build applications with unparalleled richness, responsiveness and interactivity. Telerik products help thousands of companies to be more productive and deliver reliable applications under budget and on time.
Version Q2 2011 released 07/12/2011
select

Editor / Custom Modules

   
  
 
 
   

  • Creating a custom module

    The example shows how to create a simple module that displays the count of tables and images in the content area.

    To create a custom module register its tag in the Modules inner-tag of RadEditor. Please, note that at least one of the built-in modules should be registered when creating a custom module, because due to optimization purposes the editor will not register its modules javascript code if some of the built-in modules is not declared:

    <telerik:radeditor runat="server" ID="RadEditor1" Height="700px" >
       <Modules>
          <telerik:EditorModule Name="MyModule" Enabled="true" Visible="true" />
          <telerik:EditorModule Name="RadEditorStatistics" Enabled="true" Visible="true" />
       </
    Modules>
    </telerik:radeditor>

    and after that implement the initializeBase function, e.g.

    <script type="text/javascript">
    MyModule
    = function(element)
    {
         MyModule.initializeBase(
    this, [element]);
    }

    MyModule.prototype
    =
    {
        initialize :
    function()
        {
            MyModule.callBaseMethod(
    this, 'initialize');
            var
    selfPointer = this;
            this
    .get_editor().add_selectionChange(function (){ selfPointer.doSomething(); });
            this
    .doSomething();
        },

        //A method that does the actual work - it is usually attached to the "selection changed" editor event
        doSomething : function()
        {
            var span = document.createElement ("SPAN");
            span.innerHTML = this.get_editor().get_html();

            var
    imageCount = span.getElementsByTagName("IMG").length;
            var
    tableCount = span.getElementsByTagName("TABLE").length;

            var
    element = this.get_element();
            element.innerHTML = "<b>CUSTOM MODULE: Images: " + imageCount + " Tables: " + tableCount + "</b>";
            element.style.border = "1px solid red";
            element.style.backgroundColor = "yellow";
            element.style.color = "red";
        }
    }
    ;

    MyModule.registerClass('MyModule', Telerik.Web.UI.Editor.Modules.ModuleBase);
    </script>

Source Code

C# VB.NET
Show code in new window Demo isolation steps
  • <%@ Page Language="vb" Theme="Default" AutoEventWireup="true" CodeFile="DefaultVB.aspx.vb" Inherits="Telerik.Web.Examples.Editor.BuiltinCustomModules.DefaultVB" %>
    <%@ Register TagPrefix="telerik" Namespace="Telerik.Web.UI" Assembly="Telerik.Web.UI" %>
    <%@ Register TagPrefix="qsf" Namespace="Telerik.QuickStart" %>
    <%@ Register TagPrefix="qsf" TagName="Header" Src="~/Common/Header.ascx" %>
    <%@ Register TagPrefix="qsf" TagName="HeadTag" Src="~/Common/HeadTag.ascx" %>
    <%@ Register TagPrefix="qsf" TagName="Footer" Src="~/Common/Footer.ascx" %>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <qsf:headtag id="Headtag1" runat="server"/>
    </head>
    <body class="BODY">
        <form id="form1" runat="server">
        <qsf:header id="Header1" runat="server" NavigationLanguage="VB"/>
        <telerik:RadScriptManager ID="ScriptManager1" runat="server" />         
        
        <telerik:radeditor SkinID="DefaultSetOfTools" runat="server" ID="RadEditor1" Height="450px" >
            <Modules>
                <telerik:EditorModule Name="MyModule" Enabled="true" Visible="true" />
                <telerik:EditorModule Name="RadEditorStatistics" dockingzone="bottom" Visible="true" Enabled="true" />
            </Modules>
            <Content>
                <table style="WIDTH: 650px; HEIGHT: 305px" cellspacing="2" border="1">
                    <tbody>
                        <tr>
                            <td> <img alt="product logo" src="../../Img/productLogoLight.gif" /></td>
                            <td>
                            <p align="justify"><span style="COLOR: 111111;FONT-SIZE: 11px; FONT-FAMILY: MS Sans Serif">is the successor of the well known industry standard Editor for ASP.NET. The tight integration with ASP.NET AJAX and the powerful new capabilities make Telerik's WYSIWYG Editor a flexible and lightweight component, turning it into the fastest loading Web Editor. Among the hottest features are: </span></p>
                            </td>
                        </tr>
                        <tr>
                            <td>
                            <ul>
                                <li><em>Single-file, drag-and-drop deployment</em> </li>
                                <li><em>Built on top of ASP.NET AJAX</em> </li>
                                <li><em>Unmatched loading speed with new semantic rendering </em></li>
                                <li><em>Full keyboard accessibility</em> </li>
                            </ul>
                            </td>
                            <td>
                            <ul>
                            <li><em>Flexible Skinning mechanism</em> </li>
                            <li><em>Simplified and intuitive toolbar configuration</em> </li>
                            <li><em>Out-of-the-box XHTML-enabled output</em></li>
                            <li><em>Full keyboard accessibility</em> </li>
                            </ul>
                            </td>
                        </tr>
                    </tbody>
                </table>
            </Content>
        </telerik:radeditor>
        <script type="text/javascript">
        //<![CDATA[
        MyModule = function(element)
        {
            MyModule.initializeBase(this, [element]);
        }

        MyModule.prototype =
        {
            initialize : function()
            {
                MyModule.callBaseMethod(this, 'initialize');
                var selfPointer = this;        
                this.get_editor().add_selectionChange(function (){ selfPointer.doSomething(); });     
                this.doSomething();    
            },
                        
            //A method that does the actual work - it is usually attached to the "selection changed" editor event
            doSomething : function()
            {                         
                var span = document.createElement ("SPAN");
                span.innerHTML = this.get_editor().get_html();
                
                var imageCount = span.getElementsByTagName("IMG").length;
                var tableCount = span.getElementsByTagName("TABLE").length;
                
             var element = this.get_element();         
                element.innerHTML = "<b>CUSTOM MODULE: Images: " + imageCount + " Tables: " + tableCount + "</b>";
                element.style.border = "1px solid red";
                element.style.backgroundColor = "yellow";
                element.style.color = "red";
            }
        };
            
        MyModule.registerClass('MyModule', Telerik.Web.UI.Editor.Modules.ModuleBase);
        //]]>
        </script>
        <qsf:footer runat="server" id="Footer1"/>
        </form>
    </body>
    </html>

Get more than expected!

 
 

Take your time to truly experience the power of RadControls for ASP.NET AJAX with a free 60-day trial backed up by Telerik’s unlimited dedicated support.

Download your RadControls for ASP.NET AJAX trial and jumpstart your development with the available Getting Started resources.

If you have any questions, do not hesitate to contact us at sales@telerik.com.

Copyright 2002-2024 © Telerik. All right reserved
Telerik Inc, 201 Jones Rd, Waltham, MA 02451