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 に答える