3

Я создал пользовательский список здесь приведен список Шаблон:SharePoint пользовательских контекстное меню в пользовательском списке, а не только файлы

<ListTemplate Name="CustomDocumentLibrary" 
      DisplayName="Document Library" 
      Description="" 
      BaseType="1" 
      Type="10101" 
      OnQuickLaunch="TRUE" 
      SecurityBits="11" 
      Sequence="110" 
      Image="/_layouts/images/itdl.gif" 
      DocumentTemplate="101" /> 

Я добавил пользовательское действие:

<CustomAction 
Id="1611D96C-ABBD-4021-9183-60D8440BEB95" 
Location="EditControlBlock" 
Title="Send to Document Management" 
ImageUrl="/_layouts/images/cmCopy.gif" 
RegistrationType="List" 
RegistrationId="10101"> 
<UrlAction Url="~site/Lists/DocumentLibrary/Forms/SendToDM.aspx?ListId={ListId}&amp;ListItemID={ItemId}&amp;Action=Copy"/> 

Это контекстное меню отображается как в файлах, так и в папках, возможно ли, чтобы мой контекстный memu отображался только в файлах?

ответ

3

Я никогда не выяснял, как это сделать в коде или XML, но я получил его в JavaScript.
Я добавил следующий код AllItems.aspx:

<script type="text/javascript"> 
    function Custom_AddDocLibMenuItems(m, ctx) { 
     var otype = currentItemFSObjType = GetAttributeFromItemTable(itemTable, "OType", "FSObjType"); 
     if (otype != 1) { // 1=folder 
      var itemId = GetAttributeFromItemTable(itemTable, "ItemId", "Id"); 
      var listId = ctx.listName; 
      var action = 'Go_To_Page("' + ctx.HttpRoot + '/_layouts/MyPage.aspx?ListId=' + listId + '&ListItemID=' + itemId + '");'; 
      var option = CAMOpt(m, 'Do Something', action, '/_layouts/IMAGES/10.gif', '', 1110); 
      option.id = "ID_Do_Something"; 
     } 
     return false; 
    } 

    function Go_To_Page(page) { 
     window.location = page; 
    } 
</script> 

Один неудачный побочный эффект элемент всегда первым в контекстном меню.

4

Вместо этого вы можете зарегистрировать действие по типу содержимого. Но это может быть неприемлемо в вашей ситуации?

2
<CustomAction 
Id="ContextMenu" 
Location="EditControlBlock" 
Title=Permissions" 
**RegistrationType="ContentType"** 
ShowInLists="FALSE" 
ImageUrl ="~Site/_layouts/nks.PNG" 
**RegistrationId="0x0101"**> 
    <UrlAction Url="your URL"/> 
</CustomAction> 
+0

\t \t \t Ali