2010-09-23 6 views
4

J'ajoute dynamiquement des contrôles à PlaceHolder qui, dans ContentPlaceHolderComment trouver le contrôle dans ContentPlaceholder et l'espace réservé?

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

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

On dirait que je manque quelque chose parce que t2 est toujours nul

+0

Est-ce que 'mpContentPlaceHolder' devrait être' t'? Assurez-vous également de ne pas ajouter de contrôles dans un bloc '(! IsPostBack)'. – Brad

Répondre

-4

Si vous ajoutez dynamiquement des contrôles et que vous essayez de trouver le contrôle après postback vous ne les trouverez pas.

+0

im le faire sur le clic de bouton et cela fonctionne si Im n'utilisant ContentPlaceHolder juste PlaceHolder. mais j'ai des pages de contenu donc je dois l'utiliser – MasterPiece

+0

ce qui est mpContentPlaceHolder dans votre code. vous avez affecté ContentPlaceHlder1 à la variable t. J'ai essayé quelque chose comme ceci 'Master.FindControl ("ContentPlaceHolder1"). FindControl ("PlaceHolderName"). FindControl ("ControlID")' et cela a fonctionné sans aucun problème. –

13

Si vous souhaitez trouver des contrôles de la page principale, vous pouvez trouver comme:

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

Et dans votre cas pour trouver le contrôle de ContentPlaceHolder vous pouvez trouver le contrôle comme:

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

salut, j'ai essayé celui-ci mais il retourne toujours null. – user1647667

1

J'ai trouvé gridview avec cette méthode:

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