如何在代码隐藏中的Web控件之后立即附加Web控件

时间:2013-02-06 15:56:16

标签: c#

现在我已经进行了MVCing很长一段时间我决定将一些经典的C#.Net放到我的8轨中,并且遇到了以下问题:

我的aspx页面上有一个TextBox WebControl,在后面的代码中我只想在它后面附加一个LiteralControl。

这不起作用:

TextBoxAge.Controls.Add(new LiteralControl("Invalid Age."));

这在底部一直有效:

TextBoxAge.Controls.Parent.Add(new LiteralControl("Invalid Age."));

你能帮助我吗??

例如,HTML将显示:

<div>
<input name="TextBoxAge" type="text" id="TextBoxAge" class="Age">
Invalid Age.
</div>

这应该是纯粹动态的,并且与手头的控制相关。

解决方案:

TextBoxAge.Parent.Controls.AddAt(TextBoxAge.Parent.Controls.IndexOf(T‌​extBoxAge),new LiteralControl("<span>Invalid Age.</span>"));

2 个答案:

答案 0 :(得分:1)

最好的方法是使用a PlaceHolder

  

从MSDN:使用PlaceHolder控件作为存储服务器的容器   动态添加到网页的控件。

PlaceHolder.Controls.Add(new LiteralControl("Invalid Age."));

答案 1 :(得分:1)

也许你可以尝试这样的事情。 (不记得AddAt是否会替换指定索引处的控件)

var textBoxAgeIndex = TextBoxAge.Parent.Controls.IndexOf(TextBoxAge);

TextBoxAge.Parent.Controls.AddAt(textBoxAgeIndex +1, new LiteralControl("Invalid Age."));

希望这会有所帮助