2013-02-06 219 views
1

立即追加一個WebControl的一個Web控件後,現在,我已經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>")); 
+1

什麼是'TextBoxAge'? –

+1

我真的不明白你在做什麼。 – Dozer789

+2

所以你想附加一個文字控件,但是你希望它出現在網頁的特定位置?你爲什麼不給我們多一點你的代碼。 –

回答

1

也許你可以嘗試這樣的事情。 (不記得是否AddAt將指定索引處更換控制)

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

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

希望這將有助於

+0

美麗!非常感謝! – Pinch

+0

對不起,+1有幫助,但它太粗糙,打破了我的網頁的其餘部分。 – Pinch

+0

AddAt不會替換,它會插入 – giammin

1

最好的辦法是使用一個PlaceHolder

從MSDN:使用佔位符控制作爲容器來存儲動態地添加到服務器 控制網頁。

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

可以說我只是想將它追加到手頭對象之後.. – Pinch

+0

@Pinch你應該得到父級,迭代控制層次結構,直到找到「TextBoxAge」,然後插入文字之後。使用佔位符更清潔,更容易。 – giammin

+0

真的很好奇downvote。請你能解釋一下嗎? – giammin