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 Tools

   
 
 
 
 
   

  • Adding Custom buttons to RadEditor's toolbar

    RadEditor provides 4 different ways to add custom buttons to the its toolbar:
     
    1. Setting the tools in the RadEditor's declaration:
       <telerik:radeditor runat="server" ID="RadEditor1">
         
      <Tools>
         
      <telerik:EditorToolGroup>
             
      <telerik:EditorTool Name="ApplySizeColor" Text="Apply Size and Color" />
              <
      telerik:EditorTool Name="InsertCustomDate" Text="Insert Custom Date" />
              <
      telerik:EditorTool Name="ResetContent" Text="Reset Content" />
          </
      telerik:EditorToolGroup>
         
      </Tools>        
      </telerik:radeditor>
       
    2. Setting the custom buttons via the ToolsFile property:
      <telerik:radeditor ToolsFile="~/ToolsFile.xml" runat="server" ID="RadEditor2"></telerik:radeditor>
       
      ToolsFile.xml:
      <root>
         
      <tools name="MainToolbar">
                 
      <tool name="ApplySizeColor" Text="Apply Size and Color" />
                  <
      tool name="InsertCustomDate" Text="Insert Custom Date" />
                  <
      tool name="ResetContent" Text="Reset Content" />
          </
      tools>
      </root>
       
    3. Setting the custom tools programmatically via the codebehind:

      protected void Page_Load(object sender, EventArgs e)
      {
         
      if (!IsPostBack)
          {
              EditorToolGroup main
      = new EditorToolGroup();
             
      RadEditor3.Tools.Add(main);

             
      EditorTool applySizeColor = new EditorTool();
             
      applySizeColor.Name = "ApplySizeColor";
             
      applySizeColor.Text = "Apply Size and Color";
             
      main.Tools.Add(applySizeColor);

             
      EditorTool customDate = new EditorTool();
             
      customDate.Name = "InsertCustomDate";
             
      customDate.Text = "Insert Custom Date";
             
      main.Tools.Add(customDate);

             
      EditorTool reset = new EditorTool();
             
      reset.Text = "Reset Content";
             
      reset.Name = "ResetContent";
             
      main.Tools.Add(reset);
         
      }
      }


    4. Setting the tools by using Theme:
      In your .skin file:
      <%@ Register TagPrefix="telerik" Namespace="Telerik.Web.UI" Assembly="Telerik.Web.UI" %>
      <telerik:radeditor runat="server" SkinId="SomeTools">
          <Tools>
             <telerik:EditorToolGroup >
                 <telerik:EditorTool Name="ApplySizeColor" Text="Apply Size and Color" />
                 <
      telerik:EditorTool Name="InsertCustomDate" Text="Insert Custom Date" />
                 <telerik:EditorTool Name="ResetContent" Text="Reset Content" />
             </
      telerik:EditorToolGroup>
          </Tools>
      </telerik:radeditor>
       
      Once the skin is set, you need to declare it in the RadEditor's declaration by using the SkinId property:
      <telerik:radeditor
      SkinID
      ="SomeTools"
      Height
      ="100px"
      runat
      ="server" ID="RadEditor4">
      </telerik:radeditor>

      Note: More information on how to use ASP.NET 2.x Themes is available in MSDN
      .

    Declaring the custom CommandList that will be executed when the buttons are clicked:

    After adding the custom toolbar buttons to the editor's toolbar, you should define their commands. In the page with the editor (after the <telerik:RadEditor ... declaration), add  the following script:

    <script type="text/javascript">
    Telerik.Web.UI.Editor.CommandList[
    "ApplySizeColor"] = function(commandName, editor, args)
    {
         editor.fire(
    "FontSize", {value : "4"}); //fire the FontSize command
         
    editor.fire("ForeColor", {value : "red"});  //fire the ForeColor command
    };

    Telerik.Web.UI.Editor.CommandList["InsertCustomDate"] = function(commandName, editor, args)
    {
       editor.pasteHtml(
    '<span style="width:200px;border: 1px dashed #bb0000;background-color: #fafafa;color: blue;"> ' + new Date() + ' </span>');
    };

    Telerik.Web.UI.Editor.CommandList["ResetContent"] = function(commandName, editor, args)
    {
         editor.set_html(
    ""); //set empty content
    };
    </script>

    If a custom tool is added without a CommandList command, then the clicked button will pop up a message that the command [commandname] is not implemented yet.

    Set icons for the custom buttons

    To improve the appearance of the custom buttons provide image files for them and declare or import with a <link> tag the following CSS classes in the page with the editor:

    <style type="text/css">
    .reToolbar.Default .InsertCustomDate
    {
       background-image
    : url(InsertDate.gif);
    }
    .reToolbar.Default .ApplySizeColor
    {
       background-image
    : url(Custom.gif);
    }
    .reToolbar.Default .ResetContent
    {
       background-image
    : url(Cancel.gif);
    }
    <
    /style>

    The syntax to follow is:

    <style type="text/css">
    .reToolbar.<skinName> .<commandName>
    {
      background-image
    : url(MyImage.gif) !important;
    }
    <
    /style>

Source Code

C# VB.NET
Show code in new window Demo isolation steps
  • <%@ Page Theme="Default" Language="vb" AutoEventWireup="true" CodeFile="DefaultVB.aspx.vb" Inherits="Telerik.Web.Examples.Editor.CustomButtons.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" />
        <style type="text/css">
            .reTool .InsertCustomDate
            {
                background-image: url(Icons/InsertDate.gif);
            }
            .reTool .ApplySizeColor
            {
                background-image: url(Icons/Custom.gif);
            }
            .reTool .ResetContent
            {
                background-image: url(Icons/Cancel.gif);
            }
        </style>
    </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 runat="server" ID="RadEditor1">
            <Tools>
                <telerik:EditorToolGroup>
                    <telerik:EditorTool Name="ApplySizeColor" Text="Apply Size and Color" />
                    <telerik:EditorTool Name="InsertCustomDate" Text="Insert Custom Date" />
                    <telerik:EditorTool Name="ResetContent" Text="Reset Content" />
                </telerik:EditorToolGroup>
            </Tools>
            <Content>
                <img alt="product logo" src="../../Img/productLogoLight.gif" />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:
         <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>
                        <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>
                        </ul>
            </Content>
        </telerik:RadEditor>

        <script type="text/javascript">
            //<![CDATA[
            Telerik.Web.UI.Editor.CommandList["ApplySizeColor"] = function(commandName, editor, args)
            {
                if (editor.getSelectionHtml() != "")
                {
                    editor.fire("FontSize", {value : "4"}); //fire the FontSize command
                    editor.fire("ForeColor", {value : "red"}); //fire the ForeColor command
                }
                else
                {
                    alert("Please, select some text!");
                    args.set_cancel(true);
                }
            };

            Telerik.Web.UI.Editor.CommandList["InsertCustomDate"] = function(commandName, editor, args)
            {
                editor.pasteHtml('<span style="width:200px;border: 1px dashed #bb0000;background-color: #fafafa;color: blue;"> ' + new Date() + ' </span>');
            };

            Telerik.Web.UI.Editor.CommandList["ResetContent"] = function(commandName, editor, args)
            {
                editor.set_html(""); //set empty content
            };
            //]]>
        </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