2009-11-12 8 views
0

J'ai deux commandes utilisateur A et B, où B dépend de l'existence de A dans la même page.ASP.NET: Comment implémenter ma propre fonctionnalité de type AssociatedControlID?

Je suis en train de mettre en œuvre certaines fonctionnalités comme ceci:

<mine:A ID="IdOfTheAControl" runat="server" /> 
<mine:B BelongsTo="IdOfTheAControl" runat="server" /> 

Je suis en mesure d'extraire "IdOfTheAControl" mais incapable d'obtenir le contrôle effectif avec cet ID. J'ai essayé d'utiliser FindControl("IdOfTheAControl") dans Page_Load pour B mais cela renvoie null, probablement parce que la fonction recherche le contrôle dans B.ascx et non la page maître où les deux contrôles sont frères.

Comment puis-je, à partir d'un contrôle utilisateur, accéder à un autre contrôle utilisateur avec un ID donné si les deux contrôles sont frères et sœurs dans une page?

Répondre

2

Étant donné que les contrôles utilisateur héritent de System.Web.UI.WebControl, ils ont une propriété Page et Parent. La page vous donnera un handle à la page et Parent un handle au contrôle qui héberge votre contrôle s'il y a des contrôles imbriqués.

try mineB.Page.FindControl ("IdOfTheAControl"); // pseudo code

+1

Si quelqu'un veut savoir, j'ai utilisé 'Parent.FindControl' et cela a bien fonctionné. –