将控件添加到TextBox(c#/ .net)

时间:2011-05-13 09:22:42

标签: c# asp.net controls

public class TextBoxDerived : System.Web.UI.WebControls.TextBox
{
 protected override void OnLoad(EventArgs e)
 {
   this.Controls.Add(new LiteralControl("Hello"));
 }
}

以上代码似乎没有做任何事情?

我希望像

这样的东西
Hello
<input type"textbox" />

以HTML格式呈现。

1 个答案:

答案 0 :(得分:1)

TextBox不是CompositeControl,因此儿童不会自动呈现。

例如,您可以做的是覆盖Render方法并预先手动渲染控件。

如果您希望提供文本框标签而不是某些文字内容,那么使用带有HtmlGenericControlspan标记的div会更合适,为了自动呈现转义文本。

protected override void Render(HtmlTextWriter writer)
{
    var label = new HtmlGenericControl("span");
    label.InnerText = "Hello";
    label.RenderControl(writer);

    base.Render(writer);
}