2010-01-04 14 views
7

Özel Eylem Menüsünün belirli bir listeye uygulanmasını istiyorum; şu anda aşağıdaki XML ile belirtilen ve tüm listelere uygulanır! Daha özel olarak belirtmek gerekirse; Bu özel eylemin özel listenin belirli bir görünümüne uygulanmasını bile istiyorum ...Özel İşlem Menüsü özellikle Sharepoint 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> 

Bunu nasıl yapabilirim?

+0

Zaten var Burada

belge içerik türü yapı üzerinde bir içerik türü üssü stsadm uzantısı arama alanları düzeltmek için yerinde. Başka bir uzantı eklemek güzel olurdu. Sharepoint Nesne Modeli ile yapılandırılan Özel Eylem'e erişebilir miyim? –

+0

Ayrıca 'schema.xml (List/Views/ViewHeader)' listesinde bağlantıyı eklemeyi ve kullanıcılar tarafından kabul edilmeyi denedim. Orada ben –

cevap

9

Bir içerik türü (ECB menüsünü oluşturmak istediğiniz öğeye göre) yazın ve içerik türünü listenize ekleyin. Bir customAction oluşturun ve içerik türüne kaydedin. ECB menüsü, yalnızca içerik türünü eklediğiniz listelerdeki belirli içerik türündeki öğelerde gösterilecektir.

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

içerik türü için özel bir eylem oluştur (ref içerik türü kimliği.):

<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

vermek için UrlAction ~ site moniker eşdeğer bilmeniz gerekir yanlış olabilir, ama benim için bu kod sadece "Location =" EditControlBlock ile çalıştı. @ – brentlightsey

+0

@lividsquirrel doğru - bir CustomAction aşağı kilitleme Yukarıdaki yöntemle belirli bir İçerik Türü Kimliği, Location = "Microsoft.SharePoint.StandardMenu" ve GroupId = "ActionsMenu" olduğunda çalışmaz, ancak Location = "EditControlBlock" (yine @lividsquirrel durumları gibi) olduğunda çalışır. –

+0

Çalışmasını sağlamak için Location = "EditControlBlock" 'u kullanmanız gerektiğini düzeltin, cevabımı güncelleyeceğim. – Tomso