Pieter Brinkman

Asp.Net: Menu control remove MenuItem (MenuItemDataBound)

1 min readpieterASP.NetControls

For a project I needed to remove menu items to the pages in the folder 'Subscriberpages' when a the user is in the Role of 'Marketing' and 'AccountManagement'. To do this I added the following code to the MenuItemDataBound event.

protected void mainMenu\_MenuItemDataBound(object sender, MenuEventArgs e) {
 SiteMapNode node = e.Item.DataItem as SiteMapNode;
 if (node.Url.Contains("*Subscriberpages*"))  {   if (HttpContext.Current.User.IsInRole("*Marketing*") || HttpContext.Current.User.IsInRole("*AccountManagement'*"))   {    // Get menu.    Menu topMenu = (Menu)sender;
   // Remove dataitem from menu.    topMenu.Items.Remove(e.Item);
  }  } }

To generate the menu I used the Web.sitemap and the asp:Menu control.