1

我正在向 SharePoint 的 SPDocumentLibrary 列表中的文档(而不是文件夹)添加自定义上下文菜单项。以下代码有效,但始终将我的自定义菜单项添加到上下文菜单的顶部,这是我不想要的。我猜测 CAMOpt 中的最后一个参数是定义顺序的序列号,但它似乎没有任何效果。有谁知道是否可以在列表底部添加自定义上下文菜单项?

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;
}
4

2 回答 2

1

您是否有任何理由无法使用自定义操作功能?例如,使用类似于以下的特征元素代码,但修改CustomAction 元素的序列号以定位菜单选项:

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

设置内容类型应确保该功能不适用于文件夹。如果由于某种原因它正在显示并且似乎无法禁用它,您可以使用 JavaScript/jQuery 隐藏文件夹中的菜单选项。

于 2009-09-02T09:58:47.673 回答
0

在包含用户控件的功能的元素 XML 中,在其中添加序列:

Control Id="AdditionalPageHead"
       ControlSrc="~/_ControlTemplates/blah/blah.ascx" Sequence="229"
于 2012-08-22T00:04:43.630 回答