Domanda

Mi chiedo c'è qualche possibilità di impostare non solo uno, ma più valori di RegistrationId nel tag CustomAction.

Ho una voce elements.xml in questo modo:

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

Qualcuno sa come dovrei modificarlo per aggiungere altri due RegistrationIds?

È stato utile?

Soluzione

Come regola generale, gli attributi XML non sono progettati per avere più di un valore.

È interessante notare che l'attributo sembra essere facoltativo , quindi potrebbe essere possibile applicarlo a un gran numero di posti contemporaneamente, lasciando fuori (probabilmente troppi).

Il mio unico altro suggerimento sarebbe quello di fare un buon vecchio stile copia-incolla e hanno un elemento di CustomAction per ogni RegistrationId necessaria.

Altri suggerimenti

Quello che stai veramente cercando, è SharePoint 2010 Fluent Ribbon API . Si tratta di un progetto Codeplex, che semplifica il lavoro con il nastro. Ha approfondito la documentazione, tra cui un'enorme quantità di campioni e screenshot.

L'unica cosa brutta di questa soluzione, è che si dovrebbe riscrivere la definizione del nastro XML FluentRibbon definizione nastro. Ma le definizioni di codice sono molto più flessibili, e anche FluentRibbon fornisce alcune caratteristiche aggiuntive:. Sintassi semplificata, di documentazione a figura intera e di validazione qualitativa, così IMO, ne vale la pena

Nel tuo caso, il codice risultante sarà simile a questa (all'interno della classe ricevitore funzione, in modo FeatureActivated):

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

A proposito, Fondi metodo ha molti sovraccarichi, nel caso in cui più semplice è necessario fornire solo 2-3 params.

E 'possibile trovare maggiori campioni al luogo di progetto .

P.S. Per favore, non dimenticate di aggiungere riferimento alla RibbonUtils.dll e aggiungere record nella lista distribuzione GAC (Package.package, 'scheda Avanzate', Aggiungi -> esistente di montaggio)

Questo può essere ottenuto duplicando la sezione CustomAction xml. Basta copiare l'intera sezione un'azione personalizzata e incollare sotto prima sezione CustomAction xml e cambiamento RegistrationId alla prossima RegistrationId che si desidera mostrare in.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a sharepoint.stackexchange
scroll top