Le controle asp:menu

Signaler
Messages postés
70
Date d'inscription
jeudi 26 juillet 2007
Statut
Membre
Dernière intervention
20 janvier 2011
-
Messages postés
130
Date d'inscription
mercredi 25 juin 2008
Statut
Membre
Dernière intervention
13 août 2008
-
Bonjour,


J'utilise le controle : asp:menu pour afficher un menu à 2 niveaux :

- niveau 1 : statique : famille d'articles

- niveau 2 : dynamique : sous-famille d'articles


Comment faire pour que l'élément statique garde sa propriété 'hover' lorsque je suis sur un de ses enfants dynamique.


Reformulation : faire en sorte que le père garde un style différent des autres pères lorsque je suis sur un de ses fils ....


Merci beaucoup :)

6 réponses

Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
28
Salut

Avec un peu de javasript ca doit etre gerable.

Sur le onmouseover du lien dynamique
tu changes le className de ton menu parent, il faut bien sur que ton menu enfant connaissent son parent

Bon courage
Messages postés
130
Date d'inscription
mercredi 25 juin 2008
Statut
Membre
Dernière intervention
13 août 2008
2
Salut

Tu pourrais essayer le contrôle TreeView qui est très pratique et facile d'utilisation. Sinon donne un peu plus de code si tu veux rester avec ton contrôle Menu.

A pluche
Messages postés
70
Date d'inscription
jeudi 26 juillet 2007
Statut
Membre
Dernière intervention
20 janvier 2011

Re bonjour, et merci de vos réponses aussi rapides ;)

Alors, pour le treeView, j'ai un peu regardé et j'ai pas trouvé comment le mettre à l'horizontal. (Ce que j'aimerais faire)

Donc je vous explique plus en détail ce que je veux faire avec mon menu.

Donc j'ai un web.sitemap ou je renseigne l'arborescence du site, comme ca tout est fait à coté. Donc oui, je dois pouvoir connaitre l'élément parent à tout moment.

Pour vous donner une idée du menu, il ressemble à celui sur : www.schneider-electric.com.

D'ailleur, comment faire pour avoir sur le meme bloc :
 - une image (avec un arondi (avec du transparent))
 - un fond d'une certaine couleur ?
Car si je met les 2, comment les arondis de l'image sont transparent, et bien le fond 'dépasse'. Si je met pas de la transparence alors j'ai un fond fix, et c'est un peu domage.

Merci pour toutes vos réponses ;)
Messages postés
130
Date d'inscription
mercredi 25 juin 2008
Statut
Membre
Dernière intervention
13 août 2008
2
Salut,

Je pense avoir une solution pour toi :

   Il faut gérer l'évènement : OnMenuItemClick
   Pour selectionner le parent (ça equivaut au fait qu'il soit hover), dans le code-behind, lors de l'évènement, tu met à true sa propriété : MenuID.SelectedItem.Parent.Selected

  Exemple :
protected

void MenuID_OnMenuItemClick(
Object sender,
MenuEventArgs e){

         MenuID.SelectedItem.Parent.Selected =

true;
}

Voila, si cette solution te convient n'oublie pas de la valider, merci.
Messages postés
70
Date d'inscription
jeudi 26 juillet 2007
Statut
Membre
Dernière intervention
20 janvier 2011

Hello,

Je viens de mettre en oeuvre ta solution ofonadroite et cela ne marche toujours pas. Cela ne rentre jamais dans la fonction Menu1_MenuItemClick (Meme quand je click)

Je vous montre le code :

Protected

Sub Menu1_MenuItemClick(
ByVal sender
As
Object,
ByVal e
As System.Web.UI.WebControls.MenuEventArgs) Handles Menu1.MenuItemClickMenu1.SelectedItem.Parent.Selected TrueLabel1.Text

"YEEEES"

End
Sub

<

asp:MenuID="Menu1"runat="server"DataSourceID="SiteMapDataSource1"

Orientation="Horizontal"
DynamicHorizontalOffset="2"
OnMenuItemClick="Menu1_MenuItemClick"
>

<StaticMenuItemStyle
BackColor="Red"
/>

<StaticHoverStyle
BackColor="Aqua"
/>

<DynamicHoverStyle
BackColor="Aqua"
/>

</asp:Menu>

En faite, le 'probleme' est tres simple, je voudrais juste faire :

Quand DynamicHoverStyle = True Alors sont parent le mettre en StaticHoverStyle.
Messages postés
130
Date d'inscription
mercredi 25 juin 2008
Statut
Membre
Dernière intervention
13 août 2008
2
Salut,
Je comprend vraiment pas pourquoi ça ne rentre jamais dans la fonction, tu doit avoir une erreur quelque part car chez moi ça marche nickel ! Je pense que l'erreur pourrait être qu'il faut que tu fasses des templates, ou que tu construise ton menu en code-behind. Mais ça n'explique pas pourquoi il ne rentre pas dans l'évènement OnMenuItemClick !!! Parce qu'une fois qu'il y rentre tu pourras faire tout ce que tu veux sur le parent. As tu essayé de débuguer en mettant des breakpoints ? Sinon il te reste de regarder dans la doc. MSDN.

Bref tient moi au courant de tes avancées, essaye de faire des ItemTemplate, un peu comme avec un GridView.

Bon courage

Si une réponse vous convient n'oubliez pas le réponse acceptée !!!
Ca aidera beaucoup d'autres personnes, pensez à