2010-01-04 5 views
7

Je souhaite que mon menu d'actions personnalisées soit appliqué à une liste particulière; actuellement son spécifié avec le XML suivant et il est appliqué à toutes les listes!Menu d'actions personnalisées pour une liste de points de partage particulière

Plus spécifiquement; Je veux même que cette action personnalisée soit appliquée à une vue particulière de la liste particulière ...

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

Comment puis-je faire cela?

+0

J'ai déjà Extension stsadm en place pour corriger les champs de recherche. Ce serait bien d'ajouter une autre extension. Puis-je accéder à l'action personnalisée en cours de configuration via le modèle d'objet Sharepoint? –

+0

J'ai aussi essayé d'ajouter le lien dans la liste 'schema.xml (List/Views/ViewHeader) et d'être accepté par les utilisateurs. Là, j'ai besoin de connaître l'équivalent de UrlAction ~ site moniker à donner –

Répondre

9

Créer un type de contenu (en fonction de l'élément sur lequel vous voulez créer le menu ECB) et ajouter le type de contenu à votre liste. Créez une customAction et enregistrez-la dans le type de contenu. Le menu ECB ne s'affiche que sur les éléments du type de contenu donné dans les listes dans lesquelles vous avez ajouté le type de contenu.

Voici une base de type de contenu sur la construction dans le document type de contenu:

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

Créer une action personnalisée au type de contenu (ref id type de contenu.):

<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> 
+2

Je pourrais me tromper, mais pour moi, ce code a seulement travaillé avec "Location =" EditControlBlock " – brentlightsey

+0

@lividsquirrel est correct - verrouiller un CustomAction à un ID de type de contenu particulier par le biais de la méthode ci-dessus ne fonctionne pas lorsque Location = "Microsoft.SharePoint.StandardMenu" et GroupId = "ActionsMenu", mais cela fonctionne lorsque Location = "EditControlBlock" (de nouveau sous la forme @lividsquirrel states) –

+0

correct que vous devez utiliser le Location = "EditControlBlock" pour le faire fonctionner.Je mettrai à jour ma réponse. – Tomso

Questions connexes