J'ajoute actuellement des fonctionnalités dans un site Web qui utilise le contrôle Web Menu.Menu ASP.NET Mise en cache?
Dans le site Web, différents rôles nécessitent l'affichage d'un ensemble différent d'options de navigation en fonction de ce rôle. Pour compléter cette tâche, j'ai ajouté une fonction au code derrière la page maître appelée à partir du Page_Load prend un nom de fichier (sitemap) en tant que paramètre et lie le menu qui se trouve dans le code html à cette source.
Mon problème est que lorsque je navigue vers une page qui n'existe pas et puis revenir en arrière le menu n'apparaît plus.
Quelqu'un peut-il me donner des informations sur ce problème, comme pourquoi il se passe et une résolution, aussi ce problème semble se produire dans Internet Explorer 9 sur Firefox, Opera et Chrome.
Mon code actuel est le suivant.
Menu menu = new Menu();
menu.Orientation = Orientation.Horizontal;
menu.StaticDisplayLevels = 2;
menu.MaximumDynamicDisplayLevels = 3;
menu.CssClass = "menu";
menu.EnableViewState = false;
//configure xmldatasource
XmlDataSource xmlDS = GetSiteMapDataSource(navigationPath);
xmlDS.XPath = "/*/*";
xmlDS.EnableCaching = false;
//configure menuitembinding
MenuItemBinding mib = new MenuItemBinding();
mib.DataMember = "siteMapNode";
mib.TextField = "title";
mib.NavigateUrlField = "url";
mib.ValueField = "title";
//configure datasource
menu.DataSource = xmlDS;
menu.DataBindings.Add(mib);
menu.DataBind();
//add to panel
NavigationPanel.Controls.Add(menu);
C'est mon code comme ne comprenant pas les informations relatives css actuel, j'ai actuellement aller à l'aide SiteMapDataSource par opposition à XmlDataSource que je crois que je peux être en mesure d'utiliser les informations suivantes de mon fichier de configuration Web pour sélectionnez la source de données.
<siteMap defaultProvider="guest">
<providers>
<add name="guest" type="System.Web.XmlSiteMapProvider" siteMapFile="~/App_Data/Guest.sitemap"/>
<add name="professional" type="System.Web.XmlSiteMapProvider" siteMapFile="~/App_Data/Professional.sitemap"/>
<add name="supplier" type="System.Web.XmlSiteMapProvider" siteMapFile="~/App_Data/Supplier.sitemap"/>
</providers>
</siteMap>
Merci,
Ric.
Afficher le balisage de menu et la logique MasterPage. – Icarus
Salut lcarus, le code a été ajouté à la question. – RJF