質問

ACT HTML エディターのデフォルト設定を変更するにはどうすればよいですか? たとえば、選択された太字ボタン、またはデフォルトのltrではなくrtl方向でエディタをロードしたいと考えています。
どうすればそれを実行できますか?上書きしました FillTopToolbar() カスタムボタンを追加する方法はありますが、デフォルト設定を変更する方法がわかりません。
デフォルトのltrが選択されているので、rtlに変更したいと思います。

役に立ちましたか?

解決

いくつかの点を修正するために回答を編集しました

HTMLEditor には、サーバーサイド コードを使用してこれらのボタンの状態を設定する方法がありません。ただし、クライアントでは次を使用して初期化されます。 Sys.Application.load イベント. 。イニシャライザの後で、ユーザーが UI を操作する前にコードを実行した場合は、そのイベント ハンドラーに設定したいプロパティを設定できます。

太字ボタンと rtl ボタンの状態を設定するために必要なコードは次のとおりです。他のボタンの状態を変更したい場合は、ここから取得できます。

// 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 (したがって Sys.Application) は、ASP.Net AJAX JavaScript (ページに追加する ScriptManager のおかげで追加されるファイル) に由来する名前空間です。これを使用する場合は、この行が Sys.Application.add_load(myOnLoad); ASP.Net AJAX ファイルがロードされた後に実行されます。これにはいくつかの方法があります。

  1. このスクリプトをページ内の scriptManager よりも下に追加します。
  2. スクリプトを別の JS ファイルに移動し、ScriptManager を使用してそれを読み込みます (推奨)。

スクリプトを別のファイルに移動すると、次のことがわかります。 var editor = $find('<% =youreditor.ClientID %>'); もう機能しません。これは、JavaScript ファイルが (aspx ページのように) サーバー タグを解析してサーバー側の値に置き換えないためです。したがって、ここで問題となる部分は、 <% =youreditor.ClientID %>.

これを修正するには、次のようにします。

これを aspx マークアップ (head セクション) に追加します。

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

したがって、次のようになります。

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

(マスター ページを使用している場合は、ページ内の ScriptManager の下に script タグを追加するだけです)

そして、JS ファイルでこれを置き換えます

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

これとともに

var editor = $find(myEditorId);

他のヒント

エディター コントロールは rtl をネイティブにサポートしていないため、CSS を使用してこれを行う必要があります。次の CSS は方向を rtl に設定します -

div
{
    direction:rtl;
}

HTML エディターのデフォルトのスタイルは、Editor.css ファイルにあります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top