C# Ajax控件工具包HTML编辑器自定义问题?

C# Ajax控件工具包HTML编辑器自定义问题?,c#,asp.net,ajaxcontroltoolkit,text-editor,html-editor,C#,Asp.net,Ajaxcontroltoolkit,Text Editor,Html Editor,如何更改ACT HTML编辑器的默认设置?我想加载编辑器,例如选择粗体按钮或rtl方向,而不是默认的ltr。 我该怎么做呢? 我重写了FillTopToolbar()方法来添加自定义按钮,但我不知道如何更改默认设置。选择默认ltr后,我想将其更改为rtl。您需要使用CSS来完成此操作,因为编辑器控件本身不支持rtl。以下CSS将方向设置为rtl- div { direction:rtl; } HTML编辑器的默认样式可以在editor.css文件中找到 我编辑了我的答案,纠正了一些问题

如何更改ACT HTML编辑器的默认设置?我想加载编辑器,例如选择粗体按钮或rtl方向,而不是默认的ltr。
我该怎么做呢?
我重写了
FillTopToolbar()
方法来添加自定义按钮,但我不知道如何更改默认设置。
选择默认ltr后,我想将其更改为rtl。

您需要使用CSS来完成此操作,因为编辑器控件本身不支持rtl。以下CSS将方向设置为rtl-

div
{
    direction:rtl;
}

HTML编辑器的默认样式可以在editor.css文件中找到

我编辑了我的答案,纠正了一些问题

HTMLEditor不提供使用服务器端代码设置这些按钮状态的方法。不过,在客户端上,它通过使用进行初始化。如果在初始值设定项之后但在用户与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();
        }
    }
}
看起来是这样的:

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

我的网页是rtl。但对ACT编辑器没有影响,因为它依赖于页面样式。我想将方向按钮设置为默认的RTL。您可以在AjaxControlToolkit\HTMLEditor\Editor.CSS中找到默认的CSS样式。HTMLEditor也有一个CssClass属性。你介意告诉我我应该更改什么样的类名吗?有很多类名,我找不到其中一个是用于textarea样式的,可以将样式更改为RTL。虽然我不认为这个解决方案会导致在控件工具栏中看到选中的rtl按钮。对于这个问题来说,这是一个极大的夸张…你所要做的就是设置现有的样式表属性,并将你想要的默认样式放在其中。按钮已经更新了…@尼克:你错了。OP没有询问如何使页面中的元素从右向左读取。他问如何设置HTMLEditor组件的属性。@gabrialmcadams:编辑后,答案更合适,是其他的更改使它过度杀戮。我删除了我的答案,因为自动检测功能不在默认的Ajax工具包中,它似乎是在最新版本之前的某个时候被删除的。您当前的答案非常准确,如果他们在4.0版本中添加了状态检测功能,我会回来更新这个问题。您好,McAdams先生,谢谢您的详细回答。我认为您的答案是完美的,但有一个问题,这个问题是我对Asp.net AJAX库的了解不足。我是个初学者。我将代码放在编辑器放置的页面的标记中,调试器无法识别Sys.Application对象。我在HTML编辑器文件夹下的Ajax控件工具包示例网站源代码中重复了这一点,结果是一样的。在ACT示例网站中不存在的项目中,我应该添加哪个Java脚本源文件!?请向我学习如何使用您的代码。谢谢。Sys.Application应该在那里。这可能是脚本加载顺序问题。将脚本放入一个单独的js文件中,将脚本文件添加到scriptmanager中,以便按正确的顺序加载。
<head runat="server">
    <script language="javascript">
        var myEditorId = '<%= youreditor.ClientID %>';
    </script>
<title></title>
</head>
var editor = $find('<% =youreditor.ClientID %>');
var editor = $find(myEditorId);