MenuItemCollection Class
Used to add, delete, and arrange the menu items that are displayed in a Web Part menu.
Inheritance Hierarchy
System.Object
System.Collections.CollectionBase
Microsoft.SharePoint.WebPartPages.MenuItemCollection
Namespace: Microsoft.SharePoint.WebPartPages
Assembly: Microsoft.SharePoint (in Microsoft.SharePoint.dll)
Syntax
<AspNetHostingPermissionAttribute(SecurityAction.LinkDemand, Level := AspNetHostingPermissionLevel.Minimal)> _
<AspNetHostingPermissionAttribute(SecurityAction.InheritanceDemand, Level := AspNetHostingPermissionLevel.Minimal)> _
Public Class MenuItemCollection _
Inherits CollectionBase
Dim instance As MenuItemCollection
[AspNetHostingPermissionAttribute(SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
[AspNetHostingPermissionAttribute(SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
public class MenuItemCollection : CollectionBase
Examples
The following code example creates a custom menu that has one parent menu item and two submenu item. It assumes that this method is part of a Web Part class that includes an event handler named EventHandlerForItem1.
public override void CreateWebPartMenu()
{
// Declare variables for menu items.
MenuItem ParentItem;
MenuItem Item1;
MenuItem Item2;
// Create three menu items:
// One parent item, and two submenu items.
// Create the parent item.
ParentItem = new MenuItem("ParentItem", "", "ParentItemID");
// Create a submenu item with a server event on click.
Item1 = new MenuItem("Item1", "Item1ID", new EventHandler(EventHandlerForItem1));
// Create a submenu item with a client event on click.
Item2 = new MenuItem("Item2", "javascript:alert('Item2 was clicked');", "Item2ID");
// Add the submenu items to the parent item.
ParentItem.MenuItems.Add(Item1);
ParentItem.MenuItems.Add(Item2);
// Add the parent item after the "Modify Shared/Personal Web Part"
// command in the default menu.
// Retrieve the index of the "Modify Shared/Personal Web Part"
// command.
int EditIndex = this.WebPartMenu.MenuItems.IndexOf(this.WebPartMenu.MenuItems.ItemFromID("MSOMenu_Edit"));
// Insert the parent item after the "Modify Shared/Personal Web
// Part" command.
this.WebPartMenu.MenuItems.Insert(EditIndex + 1, ParentItem);
// Add a separator above the parent item.
ParentItem.BeginSection = true;
// Check the "ParentItemIsVisible" custom boolean property to
// decide whether to display the parent menu.
if (this.ParentItemIsVisible == true)
{
ParentItem.Visible = true;
}
else
{
ParentItem.Visible = false;
}
// Check the "EnableItem1" custom boolean property to decide which
// menu item to enable.
// within the parent item.
if (this.EnableItem1 == true)
{
Item1.Enabled=true;
Item2.Enabled=false;
}
else
{
Item1.Enabled=false;
Item2.Enabled=true;
}
}
Thread Safety
Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.