2010-01-04 15 views
7

Quiero que mi menú de acción personalizada se aplique a una lista en particular; actualmente está especificado con el siguiente XML y se aplica a todas las listas.Menú de acción personalizado para una lista de Sharepoint particular

Más específicamente hablando; Incluso quiero que esta acción personalizada se aplique a una vista particular de la lista en particular ...

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

¿Cómo puedo hacer esto?

+0

ya tengo extensión stsadm implementada para corregir los campos de búsqueda. Estaría bien agregar otra extensión. ¿Puedo acceder a la acción personalizada que se está configurando a través del modelo de objetos Sharepoint? –

+0

También he intentado agregar el enlace en la lista 'schema.xml (List/Views/ViewHeader) y que los usuarios lo acepten. Allí necesito saber el equivalente de UrlAction ~ site moniker para dar en –

Respuesta

9

Cree un tipo de contenido (basado en el elemento sobre el que desea crear el menú ECB) y agregue el tipo de contenido a su lista. Cree una acción personalizada y regístrela al tipo de contenido. El menú de ECB solo se mostrará en elementos del tipo de contenido dado en listas donde haya agregado el tipo de contenido.

Aquí se muestra un tipo de contenido en la acumulación en el tipo de contenido del documento:

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

crear una acción personalizada para el tipo de contenido (ref contenido de tipo 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

Podría estar equivocado, pero para mí, este código solo funcionaba con "Location =" EditControlBlock ". – brentlightsey

+0

@lividsquirrel es correcto - bloqueando una CustomAction hasta un ID de tipo de contenido particular mediante el método anterior no funciona cuando Location = "Microsoft.SharePoint.StandardMenu" y GroupId = "ActionsMenu", pero funciona cuando Location = "EditControlBlock" (de nuevo como @lividsquirrel). –

+0

Es corrija que debe usar Location = "EditControlBlock" para que funcione. Actualizaré mi respuesta. – Tomso

Cuestiones relacionadas