使用Custom_AddDocLibMenuItems SPDocumentLibrary菜单项的顺序
-
18-09-2019 - |
题
我添加自定义上下文菜单项,在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;
}
解决方案
是否有任何理由,你为什么不能使用自定义操作功能?例如使用类似于以下特征元素的代码,但修改的 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}&ListId={ListId}" />
</CustomAction>
</Elements>
设置内容类型应确保该功能并不适用于文件夹。如果由于某种原因它显示,有似乎没有方法来禁用它,你可以使用JavaScript / jQuery的隐藏文件夹,从菜单中选择。
其他提示
在XML元素为您的特征,其中包括你用户控制,添加序列有:
Control Id="AdditionalPageHead"
ControlSrc="~/_ControlTemplates/blah/blah.ascx" Sequence="229"
不隶属于 StackOverflow