Ne une MasterPage savoir ce que la page est affichée?
Lorsque je navigue sur un site web en utilisant MasterPages, l'application de savoir quelle page je suis sur? Si oui, de le stocker dans un objet que je peux y accéder?
La raison pour laquelle je suis poser est de savoir si je peux remplacer ce:
//masterpage
<div id="nav_main">
<ul><asp:ContentPlaceHolder ID="navigation" runat="server">
</asp:ContentPlaceHolder></ul>
</div>
//content page(s)
<asp:Content ContentPlaceHolderID="navigation" ID="theNav" runat="server">
<li><a href="default.aspx">Home</a></li>
<li id="current"><a href="faq.aspx">FAQ</a></li>
<li><a href="videos.aspx">Videos</a></li>
<li><a href="#">Button 4</a></li>
<li><a href="#">Button 5</a></li>
</asp:Content>
Avec une solution plus élégante pour la navigation, qui met en évidence le lien vers la page en ayant l'élément de liste du set ID "courante". Actuellement, chaque page recrée la navigation avec son lien de l'ID de l'actuelle.
OriginalL'auteur Anders | 2008-10-09
Vous devez vous connecter pour publier un commentaire.
Je serais d'accord avec Chris: utiliser un contrôle pour gérer l'affichage de ce menu et de le rendre conscient de ce lien doit être mis en évidence. Voici une méthode que j'utilise régulièrement. Il peut devenir plus complexe si vous avez plusieurs pages qui aurait besoin de la même lien de style différemment, mais vous obtenez l'idée.
OriginalL'auteur Blumer
Pour récupérer les URL de la requête à partir de l'intérieur de la page principale, vous feriez:
Je recommande également le déménagement de votre navigation dans la page maître au lieu de la page de contenu. Cela rendra plus facile à maintenir /d'accès.
OriginalL'auteur Jared
Oui, Utilisez le code ci-dessous dans votre fichier principal. Il va vous donner le contenu de la page.
OriginalL'auteur Sarim Shekhani
Vous devriez être en mesure d'obtenir la page en accédant à la Page de propriété. C'est à dire:
OriginalL'auteur Jared
Vous auriez probablement d'utiliser l'une des Demander le chemin d'accès de l'intérieur de la page maître pour régler l'heure. Je serais probablement aussi avoir une propriété sur la page principale de le remplacer, de sorte que les pages sans liens ou quelque chose pourrait la définir à quelque chose de raisonnable.
OriginalL'auteur Mark Brackett
Il a travaillé pour moi de cette façon - Merci Jared
C'est ce que j'ai fait pour passer notre nav menu pour mettre en surbrillance l'élément de menu actuellement pour la page que nous voyons. Le code est dans la page maître.
Vous obtiendrez le chemin (Jared)
Nous utilisons le "~" dans nos liens, donc j'ai eu de la bande.
Itérer la collection menuItems du Menu de contrôle.
Comparer la propriété navigateUrl.
(Je ne suis pas le meilleur codeur et pire encore à expliquer, mais il fonctionne et j'ai été assez impressionnée!)
OriginalL'auteur Wazi
Cette solution ne fonctionne pas si vous avez deux .aspx pages qui partagent le même code derrière.
OriginalL'auteur Meysam Ghorbani
Alternativement, vous pouvez rechercher le titre de la page si vous avez défini un titre spécifique à l'enfant page au lieu de masterpage essayer:
Espère que cela aide.
OriginalL'auteur ebladieg
c'est en C#
OriginalL'auteur masoud Cheragee
Le contrôle de la navigation, pas la page principale, devrait être responsable de ce que la page est actuellement en surbrillance.
Soit la page qui est chargé doit notifier à l'élément de navigation qui il est, ou de la valeur liquidative de contrôle lui-même doit en garder la trace.
Le point est que les maquettes sont censés être simplement un support dont le contenu est affiché. Ils ne sont pas censés contrôler quoi que ce soit.
OriginalL'auteur NotMe
essayer
Elle, vous obtiendrez la page principale de la page en cours.
OriginalL'auteur Kush
Il y a aussi la Demande.RawURL
OriginalL'auteur Kon