Добавление элемента управления в TextBox (c # / .net) - PullRequest
0 голосов
/ 13 мая 2011
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 Ответ

1 голос
/ 13 мая 2011

A TextBox не является CompositeControl, поэтому его дочерние элементы не будут отображаться автоматически.

Например, вы могли бы переписать метод Render и предварительно вручную отобразить элемент управления.

Если вы хотите, как я предполагаю, предоставить метку текстового поля, а не некоторое литеральное содержимое, возможно, для этого лучше подойдет HtmlGenericControl с тегом span или div, чтобы автоматически отображать экранированный текст .

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

    base.Render(writer);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...