Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Custom Action Menu for particular Sharepoint List

I want my Custom Action Menu to be applied to particular list; currently its specified with the following XML and it gets applied to all the lists!

More specifically speaking; I even want this custom action to be applied to a particular view of the particular list...

<CustomAction
    Id="MyCustomActionId"
    Title="My Custom Action"
    Description="My Custom Action Description"
    RequireSiteAdministrator="FALSE"
    RegistrationType="List"
    GroupId="ActionsMenu"
    Sequence="1000"
    Location="Microsoft.SharePoint.StandardMenu" >
    <UrlAction Url="{SiteUrl}/_layouts/MySharepointArtifacts/MyCustomAction.aspx?ListId={ListId}"/>
  </CustomAction>

How can I do this?

like image 741
Khurram Aziz Avatar asked Jan 04 '10 13:01

Khurram Aziz


1 Answers

Creeate a content type (based on the item you want to create the ECB menu on) and add the content type to your list. Create a customAction and register it to the content type. The ECB menu will only show on items of the given content type in lists where you added the content type.

Here is a Content type base on the build in document content type:

    <?xml version="1.0" encoding="utf-8"?>
<Elements Id="f55bc095-86f5-4c0a-961e-0e8f8e6c50ed" xmlns="http://schemas.microsoft.com/sharepoint/">
  <ContentType ID="0x0101002936a05e70da4cf2a6846c669da7fdb6"
               Name="CTName"
               Group="CT group Name"
               Description="CT description"
               Version="0">
    <FieldRefs>...

Create a custom action to the content type (ref. content type id):

    <CustomAction
        Id="MyCustomActionId"
        Title="My Custom Action"
        Description="My Custom Action Description"
        RequireSiteAdministrator="FALSE"
        RegistrationType="ContentType"
RegistrationId="0x0101002936a05e70da4cf2a6846c669da7fdb6"
        GroupId="ActionsMenu"
        Sequence="1000"
        Location="EditControlBlock" >
        <UrlAction Url="{SiteUrl}/_layouts/MySharepointArtifacts/MyCustomAction.aspx?ListId={ListId}"/>
      </CustomAction>
like image 128
Tomso Avatar answered Sep 21 '22 01:09

Tomso