2009-10-16 6 views
0

Je construis une boîte modale comme un contrôle serveur personnalisé et je veux avoir une propriété sur la boîte modale TargetControlID qui spécifie l'élément qui montrera le modal quand on clique dessus. J'ai mis la propriété dans la zone modale et dans le code derrière j'utilise le bloc de code suivant (que j'ai essayé dans plusieurs endroits différentsComment accéder aux contrôles de page depuis mon contrôle serveur personnalisé?

If (_targetControlId <> "") Then 
     Dim targetControl As WebControl = Me.Page.FindControl(_targetControlId) 
     targetControl.Attributes.Add("onclick", "test1();") 
     targetControl.Attributes.Add("onclick", "test2();") 
    End If 

Ce qui se passe est que targetControl serpente toujours être NULL et provoque le plantage de la page lorsque j'ai essayé d'ajouter des attributs.J'ai vérifié l'orthographe de la targetControlId et je spécifie un contrôle qui est runat = "server". accéder à d'autres contrôles sur sa page contenant?

Merci,

Mike

+0

Utilisez-vous une page MasterPage? – Jim

Répondre

0

Tout d'abord, je tiens à souligner que le comportement que vous recherchez existe déjà dans le ModalPopupExtender fourni avec le code libre et open source AjaxControlToolkit. Je vous recommande de l'utiliser. Si vous êtes toujours sûr de vouloir écrire le vôtre, alors je vous recommande au moins de regarder leur code pour voir comment ils s'y prennent. ExtenderControlBase.FindControlHelper est un bon endroit pour commencer.

+0

Vous avez raison, je devrais juste aller avec l'extendeur. Je viens juste de finir de créer mon propre CollapsiblePanel parce que le CollapsiblePanelExtender ne convenait pas vraiment à mes besoins, mais l'extension modale devrait parfaitement correspondre à mes besoins. Merci. – mclark1129

Questions connexes