現在、メニューWebコントロールを使用するWebサイトに機能を追加しています。ASP.NETメニューのキャッシュ?
ウェブサイト内には、この役割を果たすために、そのロールに応じて異なるナビゲーションオプションが必要となるさまざまなロールがあります。Page_Loadから呼び出されるマスターページのコードに機能を追加しました。ファイル名(sitemap)をパラメータとして取り、htmlにあるメニューをこのソースにバインドします。
私の問題は、存在しないページに移動して戻ってもメニューが表示されなくなってしまうことです。
FirefoxやOpera、ChromeのInternet Explorer 9でこの問題が発生しているように見えることがあります。
現行コードは、次のとおりです。
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);
これは、CSS関連の情報は含まれません、現在のように私のコードで、私は私は私のWeb構成ファイルから以下の情報を使用することができる可能性が信じているようXMLDataSourceとは対照的に、私は現在のSiteMapDataSourceを使用してで行くを持っていますデータソースを選択します。
<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>
おかげで、
リック。
メニューマークアップとMasterPageロジックを転記します。 – Icarus
こんにちはカルカス、コードが質問に追加されました。 – RJF