문제

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;
}
도움이 되었습니까?

해결책

당신이 사용할 수없는 이유가 있습니까? 사용자 정의 액션 기능? 예를 들어 다음과 유사한 기능 요소 코드를 사용하지만 시퀀스 번호를 수정합니다. 사용자 지정 요소 메뉴 옵션을 찾으려면 :

<?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를 사용하여 폴더에서 메뉴 옵션을 숨길 수 있습니다.

다른 팁

사용자 컨트롤이 포함 된 기능의 요소 XML에서 시퀀스를 추가하십시오.

Control Id="AdditionalPageHead"
       ControlSrc="~/_ControlTemplates/blah/blah.ascx" Sequence="229"
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top