现在我已经进行了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(TextBoxAge),new LiteralControl("<span>Invalid Age.</span>"));
答案 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."));
希望这会有所帮助