我目前正在使用菜单 web 控件的网站中添加功能。
在网站内,有不同的角色需要根据该角色显示不同的导航选项集,为了完成此任务,我在母版页后面的代码中添加了一个函数,该函数从采用文件名的 Page_Load 调用(站点地图)作为参数,并将 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>
谢谢,
里克。