Domanda

Sto aggiungendo una voce di menu contestuale personalizzato ai documenti (e non cartelle) in un elenco SPDocumentLibrary in SharePoint. Il seguente codice funziona, ma aggiunge sempre la mia voce di menu personalizzata nella parte superiore del menu di contesto, che io non voglio. Stavo indovinando che il parametro finale in CAMOpt era un numero di sequenza che definire l'ordine, ma non sembra avere alcun effetto. Qualcuno sa se è possibile aggiungere una voce di menu contestuale personalizzato alla parte inferiore della lista?

function Custom_AddDocLibMenuItems(m, ctx) {
    var otype = currentItemFSObjType = GetAttributeFromItemTable(itemTable, "OType", "FSObjType");
    if (otype != 1) {
        var itemId = GetAttributeFromItemTable(itemTable, "ItemId", "Id");
        var listId = ctx.listName;

        var action = 'Go_To_Page("' + ctx.HttpRoot + '/_layouts/custom/PAGES/mycustompage.aspx?ListId=' + listId + '&ListItemID=' + itemId + ');';
        CAMOpt(m, 'Custom Menu Item', action, '/_layouts/custom/IMAGES/action.gif', '', 110);
        CAMSep(m);
    }
    return false;
}

function Go_To_Page(page) {
    window.location = page;
}
È stato utile?

Soluzione

C'è qualche motivo per cui non si è in grado di utilizzare un un'azione personalizzata caratterizzato da ? Ad esempio utilizzare la funzione di codice elemento simile di seguito ma modificare il numero di sequenza del CustomAction elemento per individuare l'opzione di menu:

<?xml version="1.0" encoding="utf-8" ?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
    <CustomAction
        Id="DoSomething"
        RegistrationType="ContentType"
        RegistrationId="0x0101"
        Location="EditControlBlock"
        Sequence="10001"
        ImageUrl="/_layouts/images/action.gif"
        Title="Do Something">
        <UrlAction Url="~site/_layouts/custom/PAGES/mycustompage.aspx?ListItemID={ItemId}&amp;ListId={ListId}" />
    </CustomAction>
</Elements>

Impostazione del tipo di contenuto dovrebbe garantire la funzione non si applica alle cartelle. Se per qualche motivo sta mostrando e sembra che vi sia alcun modo per disattivarlo, è possibile utilizzare JavaScript / jQuery per nascondere l'opzione di menu dalle cartelle.

Altri suggerimenti

Nella elementi XML per la caratteristica in cui si include il controllo utente, aggiungere la sequenza c'è:

Control Id="AdditionalPageHead"
       ControlSrc="~/_ControlTemplates/blah/blah.ascx" Sequence="229"
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top