Pergunta

Como alterar a configuração padrão para o ACT HTML Editor? Quero carregar o editor com, por exemplo, botão em negrito selecionado ou com direção RTL em vez de LTR com padrão.
Como posso executar isso? Eu superei FillTopToolbar() Método para adicionar botões personalizados, mas não sei como alterar as configurações padrão.
Como o LTR padrão é selecionado, quero alterá -lo para RTL.

Foi útil?

Solução

Eu editei minha resposta para corrigir algumas coisas

O htmleditor não fornece uma maneira de definir o estado desses botões usando o código do servidor. Embora, no cliente, ele inicialize usando Evento Sys.Application.Load. Se você executou seu código após os inicializadores deles, mas antes que o usuário interaja com a interface do usuário, você poderá definir quaisquer propriedades que deseja definir nesse manipulador de eventos.

Aqui está o código que você precisa definir o botão em negrito e os botões RTL afirmam. Você pode levá -lo daqui se quiser alterar os estados de outros botões:

// 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();
        }
    }
}

O SYS (e, portanto, sys.Application) é um espaço de nome que vem do Javascript ASP.NET AJAX ((s) arquivos (s) que são adicionados graças ao scriptManager que você adiciona à sua página). Se você usar isso, precisa ter certeza de que esta linha Sys.Application.add_load(myOnLoad); Executa após o carregamento do ASP.NET AJAX. Você pode fazer isso de algumas maneiras:

  1. Adicione este script mais baixo na página do que o scriptManager.
  2. Mova seu script para um arquivo JS separado e use o scriptManager para carregá -lo (recomendado).

Se você mover seu script para um arquivo separado, você notará que var editor = $find('<% =youreditor.ClientID %>'); não funciona mais. Isso ocorre porque os arquivos JavaScript não analisam as tags do servidor e as substituem pelo valor do lado do servidor (como as páginas ASPX). Portanto, a parte que é um problema aqui é <% =youreditor.ClientID %>.

Para consertar isso, aqui está o que você faz:

Adicione isso à sua marcação ASPX (na seção da cabeça):

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

Então parece algo assim:

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

(Se você estiver usando uma página mestre, basta adicionar a tag de script abaixo do scriptManager em sua página)

E em seu arquivo JS, substitua isso

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

com isso

var editor = $find(myEditorId);

Outras dicas

Você precisará fazer isso usando CSS, pois o controle do editor não suporta RTL nativamente. O seguinte CSS definirá a direção para RTL -

div
{
    direction:rtl;
}

Os estilos padrão do editor HTML podem ser encontrados no arquivo editor.css.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top