1

现在我已经使用 MVC 有一段时间了,我决定将一些经典的 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>"));
4

2 回答 2

1

最好的方法是使用PlaceHolder

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

PlaceHolder.Controls.Add(new LiteralControl("Invalid Age."));
于 2013-02-06T16:01:33.593 回答
1

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

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

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

希望这会有所帮助

于 2013-02-06T16:08:28.280 回答