我想扩展ASP.NET的Textbox控件,这样我就可以使用TinyMCE将它变成一个WYSIWYG编辑器。我还想在此Textbox控件中添加一个隐藏字段,并在客户端浏览器中将此标记显示在此隐藏值中,并在表单提交时将其发布回服务器。
问题是这个隐藏字段没有呈现它,即使我已将它添加到控件集合 - 只有文本框呈现。如何获取要渲染的文本框和隐藏字段?
以下代码演示了我如何扩展Textbox控件。
public class TinyMCEEditor : System.Web.UI.WebControls.TextBox
{
private readonly HiddenField hf_MarkdownValue = new HiddenField();
public string MarkDown
{
get { return hf_MarkdownValue.Value; }
}
protected override void OnInit(EventArgs e)
{
//Adding the hidden field does not render
this.Controls.Add(hf_MarkdownValue);
base.OnInit(e);
}
}
答案 0 :(得分:1)
隐藏字段未在客户端呈现,因为您没有呈现它。将以下代码添加到您的类中它可以正常工作:
protected override void Render(HtmlTextWriter w)
{
base.Render(w);
hf_MarkdownValue.RenderControl(w);
}