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