Più valori di attributo ID di registrazione in tag azione personalizzata
-
16-10-2019 - |
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?
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.