Pregunta

Cómo cambiar configuración predeterminada para ACT Editor HTML? Quiero cargar el editor con el botón Negrita, por ejemplo seleccionada o con la dirección RTL en lugar de litros defaultly.
¿Cómo puedo realizar eso? Me overrided método FillTopToolbar() añadir botones personalizados pero no sé cómo cambiar la configuración predeterminada.
como litros por defecto se selecciona quiero cambiarlo a RTL.

¿Fue útil?

Solución

I editado mi respuesta para corregir algunas cosas

El HTMLEditor no proporciona una manera de establecer el estado de los botones usando código serverside. Aunque, en el cliente, se inicializa mediante el uso de Sys.Application.load Evento . Si ejecutó el código después de que sus inicializadores, pero antes de que el usuario va a interactuar con la interfaz de usuario, usted podría entonces establecer las propiedades que se desea establecer en ese controlador de eventos.

Este es el código que necesita para configurar el botón negrita y los botones RTL estados. Se puede tomar desde aquí si desea cambiar los estados de otros botones:

// Attach a handler to the load event.
Sys.Application.add_load(myOnLoadLoader);

function myOnLoadLoader() {
    //This will run JUST after ALL code that was set to run during the load event has run
    window.setTimeout(myOnLoad, 0);
}

function myOnLoad() {
    var editor = $find('<% =editor.ClientID %>');
    var toolbar = editor.get_changingToolbar();
    var toolbarButtons = toolbar.get_buttons();
    for (var i = 0; i < toolbarButtons.length; i++) {
        var toolbarButton = toolbarButtons[i];
        if (toolbarButton instanceof AjaxControlToolkit.HTMLEditor.ToolbarButton.Rtl ||
        toolbarButton instanceof AjaxControlToolkit.HTMLEditor.ToolbarButton.Bold) {
            toolbarButton.set_activeEditPanel(editor.get_editPanel());
            toolbarButton.callMethod();
        }
    }
}

Sys (y por lo tanto Sys.Application) es un espacio de nombre que viene del Javascript ASP.Net AJAX (archivo (s) que se agregan gracias a la ScriptManager que se agrega a la página). Si utiliza esto, es necesario estar seguro de que esta línea Sys.Application.add_load(myOnLoad); se ejecuta después de la carga de archivos ASP.Net AJAX. Usted puede hacer esto un par de maneras:

  1. Añadir esta escritura más baja en la página de la scriptmanager.
  2. Mover la secuencia de comandos en un archivo JS separada, y utilizar el ScriptManager para cargarlo (recomendado).

Si se mueve la secuencia de comandos en un archivo separado, usted notará que var editor = $find('<% =youreditor.ClientID %>'); ya no funciona. Esto se debe a archivos javascript no analizar a cabo etiquetas de servidor y sustituirlos por el valor del lado del servidor (como páginas aspx hacen). Por lo que la parte que es un problema aquí es <% =youreditor.ClientID %>.

Para corregir esto, esto es lo que hace:

Agregue esto a su marcado aspx (en la sección head):

<script language="javascript">
    var myEditorId = '<%= youreditor.ClientID %>';
</script>

Por lo que se ve algo como esto:

<head runat="server">
    <script language="javascript">
        var myEditorId = '<%= youreditor.ClientID %>';
    </script>
<title></title>
</head>

(Si está utilizando una página principal, se le acaba de añadir la etiqueta script debajo del ScriptManager en su página)

Y en el archivo JS, sustituir este

var editor = $find('<% =youreditor.ClientID %>');

con este

var editor = $find(myEditorId);

Otros consejos

Usted tendrá que hacer esto con CSS como el control de editor no soporta de forma nativa RTL. El siguiente CSS establecerá dirección a RTL -

div
{
    direction:rtl;
}

Los estilos predeterminados para el editor HTML se pueden encontrar en el archivo editor.css.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top