Custom Menu Item for a List in SharePoint


There are some situations we need to have our own menu item to the context menu of the list. Its easy to add an entry to the context menu of any type of list. Depends on the type of list, menu type can be created. Each custom menu item is bounded to the custom action url. We can create a page and redirect it to that URL when an menu is clicked. Even add permission to the Menu item. Image can be added to the ImageUrl tag. basically menuitem is a CustomAction tag in the element xml. The custom action will be deployed as a feature to the site.

Custom Action Tags

The custom tag xml is the top level tag for adding the menu item. The Custom Action consist of minimally the following attributes

  • Id – Unique Id to identify the Menu Item (Mandatory)
  • RegistrationType – The type of list to which the menu item will be added, usually its the List
  • RegistrationId – 100 for Custom list and 101 for doc lib.
  • Location – Where the menu item needs to be added. it takes EditControlBlock, NewFormToolbar, DisplayFormToolbar, and      EditFormToolbar
  • Sequence – The sequence number where want to appear
  • Title – Text for display
  • ImageUrl – Icon image for the item
  • Rights – Permission for the menu item. http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spbasepermissions.aspx

Below are the steps to be followed to create a Custom Menu in the List. The example shows how to create a menu for Custom List and Document Library.

Create a project using the Empty SharePoint Template. The Solution name is Senthamil.CustomItem

image

image

Create a New Item using Right Click Add->New Item and select Module and name the Module as MyCustomMenu

image

Once added the default sample.txt is added and contains modules.xml with element entry

image

image

Remove the sample file entry in the xml file

image

Remove the Module Tag and add the CustomAction node with the details for creation of Menuitem. Add the below code under the Elements Node

<CustomAction
    Id="UserInterfaceCustomActions.ECBItemToolbar"
    RegistrationType="List"
    RegistrationId="100"
    Location="EditControlBlock"
    Sequence="106"
    Title="Kingdom">
   <UrlAction Url="/Pages/Kingdom.aspx"/>
</CustomAction>
<CustomAction
   Id="UserInterfaceCustomActions.ECBItemToolbar"
   RegistrationType="List"
   RegistrationId="101"
   Location="EditControlBlock"
   Sequence="106"
   Rights="AddListItems"
   Title="Domain">
   <UrlAction Url="/Pages/Animals.aspx"/>
</CustomAction>

The above code i have created two menuitem. Also the URL is redirected to the custom page which is created in the site. The first customaction is for Custom List and the Second customaction is for Document library. The second menu item will be visible to whom who have access to Add item.

image

The above shows the feature view which will be deployed in the site.

Now the code is able to deploy. On the Solution properties Debug tab add the URL to be deployed. Once added the URL u can directly deploy the feature to the Site. Right click the solution and Select Deploy to deploy the feature. Once successfully deployed the feature will be activated and can see in the List and document library.

image

Now when deployed i can see the custom menu in the Custom List called Animal.

image

In the document library can see the domain option custom url.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s