2011-09-15 15 views
0

現在、メニューWebコントロールを使用するWebサイトに機能を追加しています。ASP.NETメニューのキャッシュ?

ウェブサイト内には、この役割を果たすために、そのロールに応じて異なるナビゲーションオプションが必要となるさまざまなロールがあります。Pag​​e_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> 

おかげで、

リック。

+0

メニューマークアップとMasterPageロジックを転記します。 – Icarus

+0

こんにちはカルカス、コードが質問に追加されました。 – RJF

答えて

0

コードは、ポストバックがない場合にのみ実行する必要があります。

If (!IsPostBack) 
{ 
    //Your code here! 
} 

それ以外の場合は、要素が削除されます。

関連する問題