Pregunta

He creado una lista personalizada aquí es la plantilla de lista:

<ListTemplate Name="CustomDocumentLibrary"
            DisplayName="Document Library"
            Description=""
            BaseType="1"
            Type="10101"
            OnQuickLaunch="TRUE"
            SecurityBits="11"
            Sequence="110"
            Image="/_layouts/images/itdl.gif"
            DocumentTemplate="101" />

He añadido una acción personalizada:

   <CustomAction
Id="1611D96C-ABBD-4021-9183-60D8440BEB95"
Location="EditControlBlock"
Title="Send to Document Management"
ImageUrl="/_layouts/images/cmCopy.gif"
RegistrationType="List"
RegistrationId="10101">
<UrlAction Url="~site/Lists/DocumentLibrary/Forms/SendToDM.aspx?ListId={ListId}&amp;ListItemID={ItemId}&amp;Action=Copy"/>

Aparece este menú contextual de los archivos y carpetas, es posible que mi contexto memu aparezca en los archivos sólo?

¿Fue útil?

Solución 2

Nunca me di cuenta de cómo hacer esto en el código o XML, pero tengo que trabajar en JavaScript.
He añadido el código siguiente a la AllItems.aspx:

<script type="text/javascript">
    function Custom_AddDocLibMenuItems(m, ctx) {
        var otype = currentItemFSObjType = GetAttributeFromItemTable(itemTable, "OType", "FSObjType");
        if (otype != 1) { // 1=folder
            var itemId = GetAttributeFromItemTable(itemTable, "ItemId", "Id");
            var listId = ctx.listName;
            var action = 'Go_To_Page("' + ctx.HttpRoot + '/_layouts/MyPage.aspx?ListId=' + listId + '&ListItemID=' + itemId + '");';
            var option = CAMOpt(m, 'Do Something', action, '/_layouts/IMAGES/10.gif', '', 1110);
            option.id = "ID_Do_Something";
        }
        return false;
    }

    function Go_To_Page(page) {
        window.location = page;
    }
</script>

Un efecto secundario desafortunado es el elemento es siempre el primero en el menú contextual.

Otros consejos

Puede registrar la acción en el tipo de contenido en su lugar. Pero eso podría no ser adecuado en su situación?

<CustomAction
Id="ContextMenu"
Location="EditControlBlock"
Title=Permissions"
**RegistrationType="ContentType"**
ShowInLists="FALSE"
ImageUrl ="~Site/_layouts/nks.PNG"
**RegistrationId="0x0101"**>
    <UrlAction Url="your URL"/>
</CustomAction>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top