Как изменить настройку по умолчанию для HTML-редактора ACT? Я хочу загрузить редактор, например, с помощью выделенной полужирной кнопки или с направлением rtl вместо ltr по умолчанию.
Как я могу это сделать? Я переопределил метод FillTopToolbar()
для добавления пользовательских кнопок, но не знаю, как изменить настройки по умолчанию.
поскольку выбрано значение по умолчанию ltr, я хочу изменить его на rtl.
Проблема с настройкой HTML-редактора Ajax Control Toolkit?
Ответы (2)
Я отредактировал свой ответ, чтобы исправить некоторые ошибки
HTMLEditor не позволяет установить состояние этих кнопок с помощью серверного кода. Хотя на клиенте он инициализируется с помощью события Sys.Application.load а>. Если вы запустили свой код после их инициализаторов, но до того, как пользователь будет взаимодействовать с пользовательским интерфейсом, вы можете установить любые свойства, которые хотите установить в этом обработчике событий.
Вот код, который вам нужен, чтобы установить полужирную кнопку и состояния кнопок 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) — это пространство имен, полученное из javascript ASP.Net AJAX (файлы, которые добавляются благодаря ScriptManager, который вы добавляете на свою страницу). Если вы используете это, вы должны быть уверены, что эта строка Sys.Application.add_load(myOnLoad);
запускается после загрузки файлов ASP.Net AJAX. Вы можете сделать это несколькими способами:
- Добавьте этот скрипт ниже на странице, чем scriptManager.
- Переместите свой скрипт в отдельный файл 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);
var button = $find(thebuttonid);
- person Gabriel McAdams; 22.01.2010
Вам нужно будет сделать это с помощью CSS, поскольку элемент управления редактором изначально не поддерживает rtl. Следующий CSS установит направление на rtl —
div
{
direction:rtl;
}
Стили по умолчанию для редактора HTML можно найти в файле Editor.css.