Usercontrol et masterpage

hudon77 Messages postés 127 Date d'inscription vendredi 21 janvier 2005 Statut Membre Dernière intervention 29 mai 2014 - 8 sept. 2008 à 04:06
hudon77 Messages postés 127 Date d'inscription vendredi 21 janvier 2005 Statut Membre Dernière intervention 29 mai 2014 - 9 sept. 2008 à 04:27
Bonjour  à tous!   

J'ai un userControl qui me sert de menu placé dans une masterpage.
Je veux, a partir des mes pages, atteindre une function public de mon usercontrol

il s'agit d'une function permettant de  changer les CSS des liens du menu.

Nicolas!

2 réponses

cs_Nurgle Messages postés 1642 Date d'inscription samedi 6 novembre 2004 Statut Membre Dernière intervention 28 avril 2011 4
8 sept. 2008 à 21:14
Salut,

Une astuce est de faire implémenter une interface à ton usercontrol, qui te permet de déclarer cette/ces méthode(s).
Ensuite tu n'as plus qu'à y accéder en castant le controle en l'interface :

En VB.NET :
(Ctype Me.MasterPage.FindControl("monUserControl") As IMonIterface).MaMethode()
ou en C# :
((IMonInterface)this.MasterPage.FindControl("monUserControl")).MaMethode();

Bonne journée,

<hr width="100%" size="2" />Nurgle (Antoine) - MSP
0
hudon77 Messages postés 127 Date d'inscription vendredi 21 janvier 2005 Statut Membre Dernière intervention 29 mai 2014
9 sept. 2008 à 04:27
ok ca semble tres bien comme solution sauf que je ne suis pas tres famillier avec les interface. Comment j'implemente ca a mon usercontrol ?

Sinon j'ai trouvé une solution qui consiste a mettre une reference a  mon user control sur ma page comme suit:
<%

@Reference
Control="~/Controls/mainMenu.ascx" %>

je peux ensuite accedera mon menu avec un propriété qui me retoune mon menu.
Me

.Master.Menu.SetButton(mainMenu.Button.Home)

cela fonctionne tres bien sauf que je doute que ce soit optimal comme facon de faire.

De plus j'aimerais savoir si il y a une autre facon d'atteindre les fonction public de ma masterpage sans mettre un virtual path sur mes page comme suit...  <%

@
MasterType
VirtualPath="~/Survivor.master" %>
Merci beaucoup

Nicolas!
0
Rejoignez-nous