AJAX HtmlEditorExtender и получение текста из текстового поля?
Я только начинаю разбираться с веб-разработкой и пытаюсь накопить некоторый опыт. Я реализую HtmlEditorExtender на моем веб-сайте. Я добавил все файлы и ссылки, необходимые для использования этого элемента управления, и у меня он отображается правильно. У меня проблема в том, что я не могу получить содержимое текстового поля после внесения изменений. Я прикрепил элемент управления к текстовому полю, а затем заполнил текстовое поле содержимым, которое хочу отредактировать. После внесения изменений у меня есть кнопка "Сохранить", которая сохраняет текущее содержимое в редакторе HTML. Я вижу, что свойство Text в Textbox точно такое же, как и до внесения изменений. Есть ли что-то очевидное, что мне не хватает.
Код ниже:
Разметка в UserControl:
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:Panel ID="pnlPopup" runat="server" Style="display: none" CssClass="modalPopup">
<asp:Panel ID="Panel3" runat="server" Style="background-color: #DDDDDD; border: solid 1px Gray;
color: Black;">
<p>
Edit:
</p>
</asp:Panel>
<asp:TextBox runat="server" ID="txtHTMLContent" CssClass="WhiteTextBox" TextMode="MultiLine"
Columns="50" Rows="10" />
<br />
<ajaxToolkit:HtmlEditorExtender ID="htmlEditor" TargetControlID="txtHTMLContent" Runat="server" EnableSanitization="false" />
<center>
<asp:Button ID="btnSave" runat="server" Text="Save" OnClick="btnSave_Click" />
<asp:Button ID="btnCancel" runat="server" Text="Cancel" />
</center>
</asp:Panel>
Код-за:
protected void Page_Load(object sender, EventArgs e)
{
string content = GetContent();
txtHTMLContent.Text = content;
}
protected void btnSave_Click(object sender, EventArgs e)
{
DatabaseManager dm = new DatabaseManager();
dm.UpdateContent(txtHTMLContent.Text);
}
Буду признателен за любую помощь.
1 ответ
Оберните код инициализации txtHTMLContent в методе Page_Load в if(!IsPostback)
проверять:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
string content = GetContent();
txtHTMLContent.Text = content;
}
}