扩展ASP.NET文本框并添加隐藏字段

时间:2014-01-28 18:26:55

标签: asp.net webforms

我想扩展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);                          
        }

    }

1 个答案:

答案 0 :(得分:1)

隐藏字段未在客户端呈现,因为您没有呈现它。将以下代码添加到您的类中它可以正常工作:

    protected override void Render(HtmlTextWriter w)
    {
        base.Render(w);
        hf_MarkdownValue.RenderControl(w);
    }