2014-01-28 106 views
0

我想扩展ASP.NET的Textbox控件,以便使用TinyMCE将其制作成所见即所得编辑器。我还想向该Textbox控件添加一个隐藏字段,并在该隐藏值中存储来自客户端浏览器的降价,并在表单提交时将其发回服务器。扩展ASP.NET文本框并添加一个隐藏字段

问题是这个隐藏的字段没有渲染它,即使我已经将它添加到控件集合 - 只有文本框呈现。如何让文本框和隐藏字段呈现?

以下代码演示了我如何扩展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

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

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

优秀。谢谢! – burnt1ce