Frage

So ändert Standardeinstellung für ACT-HTML-Editor? I zu Last-Editor will mit zum Beispiel Bold Knopf Ausgewählte oder mit rtl Richtung statt ltr defaultly.
Wie kann ich das durchführen? I overrided FillTopToolbar() Methode Benutzerdefinierte Schaltflächen hinzufügen, aber ich weiß nicht, wie man Standardeinstellungen ändern.
als Standard ltr ausgewählt ich es rtl ändern möchten.

War es hilfreich?

Lösung

Ich bearbeitete meine Antwort, einige Dinge zu korrigieren

Der Htmleditor bietet keine Möglichkeit, den Zustand dieser Tasten einstellen Serverside-Code. Obwohl auf dem Client, initialisiert sie unter Verwendung Sys.Application.load Ereignis . Wenn Sie Ihren Code nach ihrer initializers lief, aber bevor der Benutzer mit der Benutzeroberfläche interagieren, können Sie dann festlegen, was Eigenschaften, die Sie in diesem Ereignishandler festlegen möchten.

Hier ist der Code, den Sie auf die Schaltfläche Fett und die rtl Tasten Zustände einstellen müssen. Sie können es von hier nehmen, wenn Sie die Zustände der anderen Tasten ändern möchten:

// 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 (und damit Sys.Application) ist ein Namensraum, der von dem ASP.Net AJAX Javascript kommt (Datei (en), die dank der Scriptmanager hinzugefügt werden, dass Sie zu Ihrer Seite hinzufügen). Wenn Sie diese verwenden, müssen Sie sicher sein, dass diese Linie Sys.Application.add_load(myOnLoad); läuft, nachdem die ASP.Net AJAX-Dateien laden. Sie können dies ein paar Möglichkeiten:

  1. Fügen Sie diese Skript weiter unten in der Seite als das Script.
  2. Bewegen Sie Ihr Skript in eine separate JS-Datei, und verwenden Sie das Script es (empfohlen) zu laden.

Wenn Sie Ihr Skript in eine separate Datei zu bewegen, werden Sie feststellen, dass var editor = $find('<% =youreditor.ClientID %>'); nicht mehr funktioniert. Das ist, weil Javascript-Dateien Server-Tags nicht analysieren, und ersetzen Sie sie mit dem Server-Seite Wert (als aspx Seiten tun). So ist der Teil, der ein Problem hier ist, ist <% =youreditor.ClientID %>.

Um das zu beheben, hier ist was Sie tun:

Fügen Sie diese auf Ihren aspx Markup (im Kopfteil):

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

So ist es etwa wie folgt aussieht:

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

(Wenn Sie eine Master-Seite verwenden, werden Sie nur den Script-Tag unter dem Scriptmanager in Ihrer Seite hinzufügen)

Und in der JS-Datei, replace this

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

Mit diesem

var editor = $find(myEditorId);

Andere Tipps

Sie müssen diese mit CSS als Editor-Steuerelement zu tun hat rtl nativ nicht unterstützen. Die folgende CSS Richtung auf rtl gesetzt wird -

div
{
    direction:rtl;
}

Die Standardstile für den HTML-Editor finden Sie in der editor.css-Datei.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top