使用Custom_AddDocLibMenuItems的SPDocumentLibrary菜单项的顺序

时间:2009-08-17 19:26:00

标签: javascript sharepoint document-library

我正在向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;
}

2 个答案:

答案 0 :(得分:1)

你有没有理由不能使用custom action feature?例如,使用与以下内容类似的要素元素代码,但修改CustomAction element的序号以找到菜单选项:

<?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从文件夹中隐藏菜单选项。

答案 1 :(得分:0)

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

Control Id="AdditionalPageHead"
       ControlSrc="~/_ControlTemplates/blah/blah.ascx" Sequence="229"