gpt4 book ai didi

c# - Ajax Control Toolkit HTML 编辑器自定义问题?

转载 作者:行者123 更新时间:2023-11-30 15:11:46 25 4
gpt4 key购买 nike

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

最佳答案

我编辑了我的答案以更正一些问题

HTMLEditor 不提供使用服务器端代码设置这些按钮状态的方法。尽管在客户端上,它使用 Sys.Application.load Event 进行初始化.如果您在它们的初始化程序之后但在用户与 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 标记(在标题部分):

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

所以它看起来像这样:

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

(如果您使用的是母版页,则只需在页面中的 ScriptManager 下方添加脚本标签)

然后在你的 JS 文件中,替换这个

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

有了这个

var editor = $find(myEditorId);

关于c# - Ajax Control Toolkit HTML 编辑器自定义问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2056661/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com