2009-08-17 5 views
1

SharePoint의 SPDocumentLibrary 목록에있는 폴더가 아닌 문서에 사용자 지정 상황에 맞는 메뉴 항목을 추가하고 있습니다. 다음 코드는 작동하지만 항상 원하지 않는 컨텍스트 메뉴의 맨 위에 내 사용자 정의 메뉴 항목을 추가합니다. CAMOpt의 마지막 매개 변수는 순서를 정의하는 시퀀스 번호 였지만 아무런 영향을 미치지 않는 것으로 추측되었습니다. 누구든지 목록의 맨 아래에 사용자 지정 컨텍스트 메뉴 항목을 추가 할 수 있는지 알고 있습니까?Custom_AddDocLibMenuItems를 사용하는 SPDocumentLibrary 메뉴 항목의 순서

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; 
} 

답변

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

당신은 사용자 정의 컨트롤을 포함하여 기능에 대한 요소 XML에서
0

,이 순서를 추가

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