asp.net ajout de la classe de courant menuItem
Je suis nouvelle dans la asp.net donc je vais apprécier un code de réponse.
J'ai un site web dans asp.net et c#, j'ai ajouté un menu pour le site.page maître, il ressemble à ceci:
<asp:Menu ID="mainMenu" runat="server" autopostback="true">
<Items>
<asp:MenuItem Text="Home" Value="Home" ></asp:MenuItem>
<asp:MenuItem Text="Pipes" Value="Pipes"></asp:MenuItem>
<asp:MenuItem Text="View & Query" Value="View & Query"></asp:MenuItem>
<asp:MenuItem Text="API" Value="API"></asp:MenuItem>
</Items>
</asp:Menu>
J'ai maintenant besoin d'ajouter que, lorsque l'utilisateur est sur une page spécifique, par exemple des canaux de communication, le droit menuItem devrait avoir une couleur de fond différente.
je peux utiliser une variable de session, mais je ne suis pas sûr de la façon de le faire.
Peut-on s'il vous plaît écrivez-moi un exemple complet pour cela?
Je vous remercie à l'avance
ont navigationurl dans MenuItem?
oui, je vais avoir
êtes-vous à l'aise avec jquery?
et ce qui est de la pertinence de
grande avec jquery, abd-je ne sais pas pourquoi AutoPostBack=true est ici.
oui, je vais avoir
êtes-vous à l'aise avec jquery?
et ce qui est de la pertinence de
AutoPostBack=true"
ici?grande avec jquery, abd-je ne sais pas pourquoi AutoPostBack=true est ici.
OriginalL'auteur Tovi Klein-Berzon | 2011-07-26
Vous devez vous connecter pour publier un commentaire.
Vous n'aurez pas besoin de suivre la page à l'aide de variables de session, comme lorsque vous sélectionnez un élément de menu, asp.net veuillez pistes de l'élément que vous avez sélectionné et génère sa propre classe CSS pour vous (dans la plupart des cas). Pour obtenir un meilleur visuel télécharger firebug pour Firefox et de regarder le code HTML de sortie, vous allez voir qu'ils vont avoir des styles CSS attaché comme "asp-net.menu selectedItem" par exemple, vous créez une .selectedItem{} classe CSS, et puis il va ramasser le style automatiquement.
Cependant, Si je me souviens, il peut être un peu délicate style contrôles Microsoft, comme si vous consultez le code source de la sortie, ce n'est pas exactement HTML sympathique.
Si vous voulez le style de l'élément de Menu à l'aide de l'approche de Microsoft, rendez-vous ici http://msdn.microsoft.com/en-us/library/ms366731.aspx
Cependant il y a une bibliothèque appelée CSSfriendly http://cssfriendly.codeplex.com/ qui rend le contrôle en pur HTML, qui permet de relier les classes CSS beaucoup plus facilement. Par exemple:
Et ainsi de suite et ainsi de suite. Theres une bonne documentation pour cela, et sa ma méthode de prédilection pour le style.
Modifié votre code avec mes explications ci-dessous.
Puis dans votre CSS:
Lorsque vous créez une page asp, vous définir une feuille de style (style.css) dans cette feuille de style, vous avez plusieurs classes .body{} .h1{} .p{} et ainsi de suite. Vous devez créer une classe qui correspond à la classe définie dans l'asp de contrôle. Habituellement, vous devez définir l'asp de contrôle comme suit: <asp:Menu ID="mainMenu" runat="server" autopostback="true" CssClass="mainMenuCss"> ensuite dans votre fichier css que vous ajoutez #mainMenuCss{ background-color:#eaeaea;} ensuite, pour les nœuds enfants mainMenuCss .choisis-item{ background-color:#000000;}
ou de l'utilisation de l'ASP de contrôle de définitions: <StaticMenuItemStyle CssClass="normal" /> <StaticSelectedStyle CssClass="selected" /> <StaticHoverStyle CssClass="hover" /> ajouter des styles css: .normal{ background-color:#eaeaea; } .sélectionné { background-color:#000000; }
Merci pour l'accepter. Vous voudrez peut-être faire un café et prendre une heure et lire html + CSS et asp.net les styles de contrôle. La façon dont ils sont rendus, et la façon dont les styles sont appliqués. Une bonne connaissance de ce qui se passe va vous aider à développer votre site, rapidement et efficacement 🙂
OriginalL'auteur tutts
Vous pouvez utiliser
et
D'ailleurs généralement vous aurez besoin
NavigateUrl
attribut pour votreMenuItem
. Alors tout va regarder qch comme:OriginalL'auteur Kirill
Je ne sais pas à propos des méthodes côté serveur. J'ai l'habitude de recourir à un client à côté de la méthode à l'aide de jQuery. Pour cela vous devez donner à votre menu un
CssClass
. Par exemple,CssClass="mymenu"
À l'intérieur de votre Page Maître de la balise head, faire.
Avertissement: je ne connais pas une solution pour cette anodin exigence sur le Côté Serveur. C'est ce que j'utilise. Oh! et ce code fonctionne pour ASP.NET 4.0. Avant que le rendu a été fait à l'aide de
table
. vous pourriez alors vouloir changer le plus proche de.closest("td")
OriginalL'auteur naveen
J'ai eu un problème similaire où je ne pouvais pas styliser chaque MenuItem. À l'aide de ce post...
asp:MenuItem /CSS
...vous pouvez utiliser le code suivant:
et le CSS:
Espère que cela aide quelqu'un. 🙂
OriginalL'auteur codemonkey