Установка текста в наборе инструментов Ajax htmleditorextender при нажатии кнопки

Я пытался понять это большую часть дня, поэтому любая помощь будет очень кстати...

<body>
<form id="form1" runat="server">
<script type="text/javascript">
  $(function () {
    ChangeText("This is the changed text from the document ready function");
  });

  function ChangeText(newText) {
    var editorControl = $("#txtHTMLEditor");

    editorControl[0].value = newText;
  }

</script>
<div>
  <ajaxToolkit:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
  </ajaxToolkit:ToolkitScriptManager>

  <div id="divTemp" style="display: block">
    <asp:TextBox runat="server" ID="txtHTMLEditor" TextMode="MultiLine" Rows="25" Width="100%" Text="<b>This is test text</b>" /><br />
    <ajaxToolkit:HtmlEditorExtender ID="htmlEditorExtender1" TargetControlID="txtHTMLEditor" runat="server" DisplaySourceTab="true">
    </ajaxToolkit:HtmlEditorExtender>
  </div>

  <input type="button" onclick="ChangeText('This is the changed text from the button click event'); return false;" value="Perform Change">
</div>
</form>

The above code changes the text in the html editor perfectly in the document ready event, but does nothing if I click the button.

Оба события запускают одну и ту же функцию javascript (ChangeText()), при этом значение текстовой области изменяется в обоих случаях, но изменение не отображается в текстовой области в случае события нажатия кнопки.

Есть идеи, почему бы и нет?


person Quinton    schedule 24.10.2013    source источник
comment
это определенно должно срабатывать при нажатии кнопки. jsfiddle.net/maEWb   -  person Kevin B    schedule 24.10.2013
comment
Скорее всего, вы неправильно обновляете текст в текстовой области. Посмотрите его документацию по взаимодействию с javascript для любого редактора.   -  person Kevin B    schedule 24.10.2013


Ответы (2)


Вам нужно изменить текст через клиентский интерфейс HTMLEditorExtender:

  function ChangeText(newText) {
    var editorControl = $find("<%=htmlEditorExtender1.ClientID%>");
    editorControl._editableDiv.innerHTML = newText;
  }
person Vaibhav Garg    schedule 06.11.2013

Расположение HTML-содержимого HtmlEditorExtender могло со временем измениться. Вот как я это сделал в версии 7.1005 инструментария.

            var htmlSource = $('#<%= DescriptionEnglishEditor.ClientID %>Extender_ExtenderContentEditable').html();
            $('#<%= DescriptionFrenchEditor.ClientID %>Extender_ExtenderContentEditable').html(htmlSource);

Ключ в том, чтобы найти объект в DOM, который хранит HTML, и правильно сослаться на него.

person Atters    schedule 24.02.2015