Skip to main content
 首页 » 编程设计

c#之AJAX HtmlEditorExtender 并从文本框中获取文本

2024年01月01日40grandyang

我刚刚开始掌握 Web 开发并尝试积累一些经验。 我正在我的网站中实现 HtmlEditorExtender。我已经添加了使用此控件所需的所有文件和引用,并且我已正确显示该控件。我遇到的问题是我似乎无法在进行更改后获取文本框的内容。 我已将控件附加到文本框,然后用我希望编辑的内容填充文本框。进行更改后,我有一个保存按钮,可以将当前内容保存在 HTML 编辑器中。我看到的是文本框的文本属性与我进行更改之前完全相同。有什么明显的我想念的东西吗。

代码如下:

用户控件中的标记:

<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); 
} 

如有任何帮助,我将不胜感激。

请您参考如下方法:

在 if(!IsPostback) 中的 Page_Load 方法中包装 txtHTMLContent 初始化代码检查:

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!IsPostBack) 
    { 
        string content = GetContent(); 
        txtHTMLContent.Text = content; 
    } 
}