Gøre punkt i menu med SiteMapDataSource usynlig
Hej,Jeg har en menu som bruger en SiteMapDataSource som virker ok.
Men jeg har nu brug for i codebehind at gøre nogle af menu punkterne usynlige. Kan I hjælpe mig med det?
Min SiteMapDataSource ser sådan ud:
<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" enableLocalization="true" >
<siteMapNode url="Default.aspx" title="Root" description="" roles="*">
<siteMapNode url="Content/Default.aspx?pid=main" title="$Resources:Resource, Home" description="" roles="*" />
<siteMapNode url="Content/Users.aspx" title="$Resources:Resource, Members" description="" roles="*" />
<siteMapNode url="Content/Forum.aspx" title="$Resources:Resource, Forums" description="" roles="*" />
<siteMapNode url="Content/Blog.aspx" title="$Resources:Resource, Blogs" description="" roles="*" />
<siteMapNode url="Content/Polls.aspx" title="$Resources:Resource, Polls" description="" roles="*" />
<siteMapNode url="Content/Gallery.aspx" title="$Resources:Resource, Galleries" description="" roles="*" />
<siteMapNode url="Content/Events.aspx" title="$Resources:Resource, Calendar" description="" roles="*" />
</siteMapNode>
</siteMap>
Min menu ser ud som dette:
<asp:menu id="menuDefault"
cssclass="menuMain"
runat="server"
dynamichorizontaloffset="2"
dynamicenabledefaultpopoutimage="false"
staticenabledefaultpopoutimage="false"
DataSourceID="smdsMenuDefault">
<staticmenuitemstyle cssclass="menuItemStatic" />
<dynamichoverstyle cssclass="dynamicHover" />
<dynamicmenustyle cssclass="dynamicMenu" />
<dynamicmenuitemstyle cssclass="menuItemDynamic" />
<statichoverstyle cssclass="staticHover" />
</asp:menu>
<asp:SiteMapDataSource ID="smdsMenuDefault" SiteMapProvider="DefaultSiteMapClosed" runat="server" ShowStartingNode="false" StartingNodeOffset="0" />
Jeg har forsøgt mig med følgende i codebehind:
protected void menuMain_ItemDataBound(object sender, MenuEventArgs e)
{
if (e.Item.Text == "Billeder" || e.Item.Text == "Galleries")
{
if (Convert.ToBoolean(AppSettingsSection.Settings["EnableUserGalleries"].Value.ToString()) == false)
{
e.Item.Parent.ChildItems.Remove(e.Item);
}
}
}
Men for det første er det ikke den smarteste metode, da jeg jo med tiden får flere resource filer og dermed også flere tekster og skal så ind og rette hver gang. jeg får også følgende fejl:
Object reference not set to an instance of an object.
Jeg håber nogen kan hjælpe mig, for her sidder jeg også fast :-)