2010-09-23 61 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");