Le controle asp:menu

Djzlouk Messages postés 70 Date d'inscription jeudi 26 juillet 2007 Statut Membre Dernière intervention 20 janvier 2011 - 17 juil. 2008 à 14:02
ofonadroite Messages postés 130 Date d'inscription mercredi 25 juin 2008 Statut Membre Dernière intervention 13 août 2008 - 18 juil. 2008 à 14:22
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

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
17 juil. 2008 à 15:29
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
0
ofonadroite Messages postés 130 Date d'inscription mercredi 25 juin 2008 Statut Membre Dernière intervention 13 août 2008 2
17 juil. 2008 à 15:35
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
0
Djzlouk Messages postés 70 Date d'inscription jeudi 26 juillet 2007 Statut Membre Dernière intervention 20 janvier 2011
17 juil. 2008 à 16:05
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 ;)
0
ofonadroite Messages postés 130 Date d'inscription mercredi 25 juin 2008 Statut Membre Dernière intervention 13 août 2008 2
18 juil. 2008 à 09:51
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Djzlouk Messages postés 70 Date d'inscription jeudi 26 juillet 2007 Statut Membre Dernière intervention 20 janvier 2011
18 juil. 2008 à 11:20
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.
0
ofonadroite Messages postés 130 Date d'inscription mercredi 25 juin 2008 Statut Membre Dernière intervention 13 août 2008 2
18 juil. 2008 à 14:22
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 à
0
Rejoignez-nous