Share via


MenuItemCollection.Insert Method

Adds a previously created MenuItem at the specified index within the menu item collection.

Namespace:  Microsoft.SharePoint.WebPartPages
Assembly:  Microsoft.SharePoint (in Microsoft.SharePoint.dll)
Available in Sandboxed Solutions: No

Syntax

'Declaration
Public Sub Insert ( _
    index As Integer, _
    value As MenuItem _
)
'Usage
Dim instance As MenuItemCollection
Dim index As Integer
Dim value As MenuItem

instance.Insert(index, value)
public void Insert(
    int index,
    MenuItem value
)

Parameters

  • index
    Type: System.Int32

    The location in the collection to add the menu item.

Examples

The following code example creates a custom menu that has one parent menu item and two submenu items. It uses the Insert method to add the menu item into a specific place within the custom menu.

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;
    }
}
Public Overrides Sub CreateWebPartMenu()
    ' Declare variables for menu items.
    Dim ParentItem As MenuItem
    Dim Item1 As MenuItem
    Dim Item2 As MenuItem

    ' 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(AddressOf 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.
    Dim EditIndex As Integer = Me.WebPartMenu.MenuItems.IndexOf(Me.WebPartMenu.MenuItems.ItemFromID("MSOMenu_Edit"))

    ' Insert the parent item after the "Modify Shared/Personal Web Part" command.
    Me.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 Me.ParentItemIsVisible = True Then
        ParentItem.Visible = True

    Else
        ParentItem.Visible = False
    End If

    ' Check the "EnableItem1" custom boolean property to decide which 
    ' menu item to enable. 
    ' within the parent item.
    If Me.EnableItem1 = True Then
        Item1.Enabled=True
        Item2.Enabled=False

    Else
        Item1.Enabled=False
        Item2.Enabled=True
    End If
End Sub

See Also

Reference

MenuItemCollection Class

MenuItemCollection Members

Microsoft.SharePoint.WebPartPages Namespace