La façon dont j'ai pris cette approche était de créer des contrôles de lien hypertexte ASP.NET pour chacun de mes éléments de navigation dans ma page maître.
Dans la page principale, je puis créé une méthode publique qui attribuerait le style CSS « sélectionné » approprié au contrôle je précise:
Public Sub SetNavigationPage(ByVal MenuName As String)
DirectCast(Me.FindControl(MenuName), HyperLink).CssClass = "MenuCurrent"
End Sub
Puis dans mes pages de contenu, je devais simplement faire référence à la master page en conséquence.
Dim myMaster As EAF = DirectCast(Me.Master, EAF)
myMaster.SetNavigationPage("hypSearchRequest")
Cela m'a donné la possibilité d'ajouter/supprimer des éléments de navigation sur les différentes pages et aussi être capable d'affecter plusieurs pages à l'option de navigation administrateur en cas de besoin.
Il est également intéressant de noter que le référencement du contrôle de lien hypertexte et la définition de l'attribut Visibilité (pour masquer les pages administratives) ne fonctionnaient pas. Cela est dû à l'ordre de chargement des pages maître et contenu. Au lieu de cela, j'ai créé une autre classe CSS qui définit simplement la propriété de visibilité et a utilisé la même approche que ci-dessus.
Comment utiliser utiliser des thèmes? Ce serait une application ASP.NET 2.0 (VS 2008 .Net 3.5) –
Cela fait un moment que j'ai utilisé des thèmes mais je suppose que l'on pourrait définir un thème pour leur contrôle utilisateur. Maintenant que j'y pense, je pense que les thèmes sur les contrôles utilisateur ne fonctionnaient pas pour ASP.NET 2.0. Si elles ont été implémentées dans .NET 3.5, je ne suis pas sûr. –