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?
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>