2010-01-04 5 views
7

Ich möchte, dass mein benutzerdefiniertes Aktionsmenü auf eine bestimmte Liste angewendet wird. Derzeit ist es mit dem folgenden XML spezifiziert und es wird auf alle Listen angewendet!Benutzerdefiniertes Aktionsmenü für bestimmte SharePoint-Listen

Genauer gesagt; Ich möchte sogar, dass diese benutzerdefinierte Aktion auf eine bestimmte Ansicht der bestimmten Liste angewendet wird ...

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

Wie kann ich das tun?

+0

habe ich bereits Stsadm-Erweiterung in Ort, um die Nachschlagefelder zu beheben. Es wäre in Ordnung, eine weitere Erweiterung hinzuzufügen. Kann ich auf die benutzerdefinierte Aktion zugreifen, die über das SharePoint-Objektmodell konfiguriert wird? –

+0

Ich habe auch versucht, den Link in der Liste 'schema.xml (List/Views/ViewHeader) hinzuzufügen und von den Benutzern akzeptiert. Dort muss ich das Äquivalent von UrlAction ~ Site-Moniker kennen, um in –

Antwort

9

Create einen Inhaltstyp (basierend auf dem Element, auf dem Sie das ECB-Menü erstellen möchten) und fügen Sie den Inhaltstyp zu Ihrer Liste hinzu. Erstellen Sie eine benutzerdefinierte Aktion und registrieren Sie sie für den Inhaltstyp. Das ECB-Menü wird nur für Elemente des angegebenen Inhaltstyps in Listen angezeigt, in denen Sie den Inhaltstyp hinzugefügt haben.

ist hier eine Inhaltstyp-Basis auf dem Build in Dokumenteninhalt:

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

eine benutzerdefinierte Aktion vom Typ Inhalt erstellen (ref Inhaltstyp-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> 
+2

geben, könnte ich falsch sein, aber für mich arbeitete dieser Code nur mit "Location =" EditControlBlock ". – brentlightsey

+0

@lividsquirrel ist richtig - eine CustomAction nach unten zu sperren Eine bestimmte Inhaltstyp-ID durch die obige Methode funktioniert nicht, wenn Location = "Microsoft.SharePoint.StandardMenu" und GroupId = "ActionsMenu", aber es funktioniert, wenn Location = "EditControlBlock" (wieder als @lividsquirrel states). –

+0

Es ist Korrigiere, dass du den Location = "EditControlBlock" benutzen musst, damit es funktioniert. Ich werde meine Antwort aktualisieren. – Tomso

Verwandte Themen