Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ASP.NET菜单缓存?_Asp.net_Aspmenu_Aspmenu Control - Fatal编程技术网

ASP.NET菜单缓存?

ASP.NET菜单缓存?,asp.net,aspmenu,aspmenu-control,Asp.net,Aspmenu,Aspmenu Control,我目前正在使用菜单web控件的网站中添加功能 在网站中有不同的角色,需要根据角色的不同显示一组不同的导航选项。为了完成此任务,我在母版页的代码后面添加了一个函数,该函数是从使用文件名(sitemap)的页面加载调用的并将html中的菜单绑定到此源 我的问题是,当我导航到一个不存在的页面,然后返回时,菜单不再出现 有人能给我一些关于这个问题的信息吗,比如为什么会发生这种情况以及解决方法,而且这个问题似乎只发生在Firefox、Opera和Chrome之外的InternetExplorer9中 我目

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

在网站中有不同的角色,需要根据角色的不同显示一组不同的导航选项。为了完成此任务,我在母版页的代码后面添加了一个函数,该函数是从使用文件名(sitemap)的页面加载调用的并将html中的菜单绑定到此源

我的问题是,当我导航到一个不存在的页面,然后返回时,菜单不再出现

有人能给我一些关于这个问题的信息吗,比如为什么会发生这种情况以及解决方法,而且这个问题似乎只发生在Firefox、Opera和Chrome之外的InternetExplorer9中

我目前的代码如下

    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>

谢谢


Ric。

只有在没有回发的情况下才能执行代码

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

否则,您的元素将被删除。

发布菜单标记和母版页逻辑。您好,代码已添加到问题中。