Многочисленные значения атрибута RegistrationId в теге CustomAction

sharepoint.stackexchange https://sharepoint.stackexchange.com/questions/11341

Вопрос

Интересно, есть ли возможность установить не только один, но и несколько значений RegistrationId в CustomAction ярлык.

У меня есть запись elements.xml как это:

<CustomAction
Id="ClassifyDialogButton.SharePoint.Ribbon.CustomTab"
Location="CommandUI.Ribbon"    
Rights="EditListItems"
RegistrationType="List"    
RegistrationId="101">

Кто -нибудь знает, как мне изменить его, чтобы добавить еще два регистрации?

Это было полезно?

Решение

Как правило, атрибуты XML не предназначены для того, чтобы иметь более одного значения.

Интересно, что атрибут кажется необязательным, Таким образом, возможно, можно применить его к множеству множества мест одновременно, оставив его (вероятно, слишком много).

Моим единственным другим предложением было бы сделать старый старомодный вставка для копирования и иметь один элемент пользовательского действия для каждого необходимого регистрации.

Другие советы

Что ты на самом деле ищешь, это SharePoint 2010 Fluent Ribbon API. Анкет Это проект Codeplex, который упрощает работу с лентой. Он имеет углубленную документацию, в том числе огромное количество образцов и скриншотов.

Единственная плохая вещь в этом решении - это то, что вы должны переписать свое определение ленты XML в определение ленты Fluentribbon. Но определения кода гораздо более гибки, а также FluentRibbon предоставляет некоторые дополнительные функции: упрощенный синтаксис, полноразмерная документация и качественная проверка, так что IMO, оно того стоит.

В вашем случае полученный код будет выглядеть так (внутренний класс приемника, в методе FeatureActivativated):

var myTab = new TabDefinition
{
    Id = "MyTab",
    Title = "My tab",

    // etc, create your definition here...
};

// instantiate RibbonCustomAction class
var ribbonCustomAction = new RibbonCustomAction();

// add one or more ribbon definitions, which will be deployed
// in same scope.
// RibbonCustomAction acts like a container for such definitions.
ribbonCustomAction.AddTab(myTab);

// Let's provision our custom action
// receiverGuid is a random constant Guid, which must be unique
// in the feature scope. It is used for cleanup in FeatureDeactivating
// method.
ribbonCustomAction.Provision(
    receiverGuid, 
    web, 
    ListTypes.GenericLibrary, 
    ListForms.All,
    SPBasePermissions.ManageLists);

// Next, we can provision the same custom action again and again to different
// locations. For example, let's register it for Links list:
ribbonCustomAction.Provision(
    receiverGuid, 
    web, 
    ListTypes.LinksList, 
    ListForms.All,
    SPBasePermissions.ManageLists);

Кстати, Обеспечение Метод имеет много перегрузки, в самом простом случае вы должны предоставить только 2-3 параметра.

Вы можете найти больше образцов на сайте проекта.

PS, пожалуйста, не забудьте добавить ссылки на Ribbonutils.dll & добавить запись в список развертывания GAC (Package.package, «Advanced Tab», Add -> Существующая сборка)

Это может быть достигнуто путем дублирования раздела XML CustomAction. Просто скопируйте весь раздел «Пользовательский действие» и вставьте ниже 1 -й раздел XML Customaction и измените RegistrationId на следующую RegistrationId, в котором вы хотите, чтобы он отобразился.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с sharepoint.stackexchange
scroll top