Question

Comment modifier le paramètre par défaut pour ACT Editor HTML? Je veux charger l'éditeur avec par exemple choisi Bouton gras ou avec la direction de rtl au lieu de ltr défaillant peut.
Comment puis-je effectuer cela? J'overrided méthode FillTopToolbar() pour ajouter des boutons personnalisés, mais je ne sais pas comment modifier les paramètres par défaut.
comme défaut ltr est sélectionné Je souhaite modifier à rtl.

Était-ce utile?

La solution

Je modifié ma réponse à corriger certaines choses

Le HTMLEditor ne fournit pas un moyen de définir l'état de ces boutons en utilisant le code Serverside. Bien que, sur le client, initialisées en utilisant Sys.Application.load événement . Si vous avez exécuté votre code après leur initializers, mais avant que l'utilisateur va interagir avec l'interface utilisateur, vous pouvez ensuite définir toutes les propriétés que vous souhaitez définir dans ce gestionnaire d'événements.

Voici le code que vous devez définir le bouton gras et les états des boutons rtl. Vous pouvez le prendre à partir d'ici si vous voulez changer les états d'autres boutons:

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

Systèm (et donc Sys.Application) est un espace de nom qui vient du javascript ASP.Net AJAX (fichier (s) qui sont ajoutés grâce au ScriptManager que vous ajoutez à votre page). Si vous utilisez, vous devez être sûr que cette ligne Sys.Application.add_load(myOnLoad); court après les fichiers ASP.Net AJAX charge. Vous pouvez le faire de deux façons:

  1. Ajoutez ce script plus bas dans la page que le ScriptManager.
  2. Déplacer votre script dans un fichier JS séparé, et utiliser le ScriptManager pour le charger (recommandé).

Si vous déplacez votre script dans un fichier séparé, vous remarquerez que var editor = $find('<% =youreditor.ClientID %>'); ne fonctionne plus. C'est parce que les fichiers javascript ne parse pas les balises de serveur et de les remplacer par la valeur côté serveur (comme les pages ASPX font). Ainsi, la partie qui est un problème ici est <% =youreditor.ClientID %>.

Pour résoudre ce problème, voici ce que vous faites:

Ajoutez ceci à votre balisage ASPX (dans la section de la tête):

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

Il ressemble à ceci:

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

(Si vous utilisez une page maître, vous suffit d'ajouter la balise de script ci-dessous la ScriptManager dans la page)

Et dans votre fichier JS, remplacer

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

avec cette

var editor = $find(myEditorId);

Autres conseils

Vous devrez le faire en utilisant le CSS comme le contrôle de l'éditeur ne supporte pas nativement rtl. Le CSS suivant pour définir la direction rtl -

div
{
    direction:rtl;
}

Les styles par défaut pour l'éditeur HTML se trouvent dans le fichier editor.css.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top