Frage

Ich bin das Hinzufügen eines benutzerdefinierten Kontextmenüpunkt Dokumente (und nicht die Ordner) in einer SPDocumentLibrary Liste in Sharepoint. Der folgende Code funktioniert, aber immer fügt meinen benutzerdefinierten Menüpunkt am oberen Rande des Kontextmenüs, das will ich nicht. Ich vermute, dass der letzte Parameter in CAMOpt eine Sequenznummer war, die die Reihenfolge definieren würde, aber es scheint keine Wirkung zu haben. Hat jemand wissen, ob es möglich ist, einen benutzerdefinierter Kontextmenüpunkt nach unten auf der Liste hinzufügen?

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;
}
War es hilfreich?

Lösung

Gibt es einen Grund, warum Sie nicht in der Lage sind, eine verwenden benutzerdefinierte Aktion verfügen ? Zum Beispiel Merkmalselement- Code ähnlich den folgenden verwenden, aber die Sequenznummer des Custom ändern Element die Menüoption zu finden:

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

den Inhaltstyp einstellen sollte die Funktion nicht gewährleistet, auf Ordner anwenden. Wenn aus irgendeinem Grund scheint es zeigt und es gibt keine Möglichkeit, es zu deaktivieren, können Sie JavaScript / jQuery verwenden, um die Menüoption aus Ordnern zu verbergen.

Andere Tipps

In den Elementen XML für Ihre Funktion, wo Sie die User Control enthalten, fügen Sie die Reihenfolge gibt:

Control Id="AdditionalPageHead"
       ControlSrc="~/_ControlTemplates/blah/blah.ascx" Sequence="229"
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top