ASP.. NET菜单缓存



我目前正在一个使用菜单web控件的网站中添加功能。

在网站中有不同的角色,需要不同的导航选项集根据角色出现,为了完成这项任务,我在母版页后面的代码中添加了一个函数,该函数是从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相关信息,我目前正在尝试使用SiteMapDataSource而不是XMLDataSource,因为我相信我可以使用以下信息从我的web配置文件中选择数据源。

    <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>

谢谢,

里克。

该代码只在没有回发时执行。

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

相关内容

  • 没有找到相关文章

最新更新