2011-06-27 3 views
0

J'ai un contrôle utilisateur que j'ajoute dynamiquement à une page Web. L'ascx a quelques contrôles auxquels je veux avoir accès à l'exécution. Je peux accéder à l'ascx lui-même, mais aucun des contrôles sur l'ascx n'est disponible. J'ai essayé d'ajouter une simple variable publique et j'ai également essayé d'ajouter une propriété publique à l'ascx, mais je suis incapable d'avoir accès à l'une d'entre elles au moment de la conception (erreurs de compilation). Je vous serais reconnaissant des idées - je suis coincé ... :-)Besoin de référencer les contrôles/propriétés dans un contrôle ascx (asp.net, écrit en vb)

j'ai ajouté ce qui suit au code-behind du contrôle ascx:

Public Property areaCode() As String 
     Get 
      Return iebEmpPhoneAreacode.Text 
     End Get 
     Set(ByVal value As String) 
      iebEmpPhoneAreacode.Text = value 
     End Set 
    End Property 

Public AreaCodeStr As String = "" 

et essaie d'utiliser les variations des éléments suivants pour accéder à la propriété/contrôle ascx:

For Each ctrl As Control In pnlPhones.Controls 
    If ((TypeOf ctrl Is ctrlPhone) And (ctrl.ID = vbNullString)) Then 
     (DirectCast(ctrl, ctrlPhone)).AreaCodeStr = "test" 

     'or try this 

     ctrl.areaCode = "test" 
    End If 
Next 
+0

Qu'avez-vous essayé? (S'il vous plaît montrer le code.) Quelles étaient les erreurs? – David

Répondre

1

la page d'accueil devrait avoir une @Reference directive désignant le ascx chargé de sorte qu'il sera compilé avec la page.

Quelque chose comme:

<%@ Reference VirutalPath="YourReferenceControl.ascx" %> 

Cela devrait aller dans le domaine des directives quelque part en dessous de la directive @Page.

http://msdn.microsoft.com/en-us/library/w70c655a.aspx

+0

Merci Variante - votre réponse plus le lien que vous avez fourni m'a dépassé mon problème. – SunfiShie

Questions connexes