2010-09-23 60 views
4

我添加控件動態爲佔位符,其內的ContentPlaceHolder如何在ContentPlaceholder和佔位符中查找控件?

var t = (ContentPlaceHolder)Master.FindControl("ContentPlaceHolder1"); 
var t1 = (PlaceHolder)mpContentPlaceHolder.FindControl("PlaceHolderName"); 

var t2 = (DropDownList)t1.FindControl("ControlID"); 

它看起來像我失去了一些東西,因爲T2總是空

+0

'mpContentPlaceHolder'實際上應該是't'嗎?另外,確保你沒有在'(!IsPostBack)'塊中添加控件。 – Brad 2010-09-23 18:58:19

回答

-4

如果你是動態添加控件,你正在努力尋找控制之後回發你不會找到他們。

+0

即時通訊按鈕點擊它,它的工作原理,如果我不使用ContentPlaceHolder只是PlaceHolder。但我有一個內容頁面,所以我需要使用它 – MasterPiece 2010-09-23 18:43:18

+0

什麼是您的代碼中的mpContentPlaceHolder。您已將ContentPlaceHlder1分配給變量t。我試過這樣的'Master.FindControl(「ContentPlaceHolder1」)。FindControl(「PlaceHolderName」)。FindControl(「ControlID」)',它沒有任何問題的工作。 – 2010-09-24 02:40:07

13

如果你想找到母版頁的控制,那麼你可以找到這樣的:

Label l = Master.FindControl("label1") as Label; 

而在你的情況下從的ContentPlaceHolder你可以找到像控制尋找控制:

TextBox TB= 
    Master.FindControl("ContentPlaceHolder1").FindControl("textbox1") as 
    TextBox; 
+0

嗨,我試過這個,但它總是返回null。 – user1647667 2014-04-04 06:41:43

1

我發現使用此方法的gridview:

GridView gv =(GridView)Master.FindControl("ContentPlaceHolder1").FindControl("gvRD");