Pregunta

Me pregunto si hay alguna capacidad para establecer no solo uno sino múltiples valores de RegistrationId en CustomAction etiqueta.

Tengo una entrada de Elements.xml como esta:

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

¿Alguien sabe cómo debo modificarlo para agregar otros dos registros de registros?

¿Fue útil?

Solución

Como regla general, los atributos XML no están diseñados para tener más de un valor.

Curiosamente, el atributo parece ser opcional, por lo que puede ser posible aplicarlo a muchos lugares a la vez dejándolo fuera (probablemente demasiados).

Mi única otra sugerencia sería hacer una buena pasta de copia a la antigua y tener un elemento de personalización para cada registro necesario.

Otros consejos

Lo que realmente estás buscando es SharePoint 2010 Fluent Ribbon API. Es un proyecto CodePlex, que simplifica el trabajo con la cinta. Tiene documentación en profundidad, que incluye una gran cantidad de muestras y capturas de pantalla.

Lo único malo de esta solución es que debe reescribir su definición de cinta XML a la definición de cinta de fluentribon. Pero las definiciones de código son mucho más flexibles, y también Fluentribbon proporciona algunas características adicionales: sintaxis simplificada, documentación de longitud completa y validación cualitativa, por lo que en mi opinión, vale la pena.

En su caso, el código resultante se verá así (clase de receptor de funciones dentro, en el método característico):

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

Por cierto, Disposición El método tiene muchas sobrecargas, en caso más fácil, debe proporcionar solo 2-3 parámetros.

Puedes encontrar más muestras en el sitio del proyecto.

PD: No olvide agregar referencia a RibbonUtils.dll y agregar registro a la lista de implementación GAC (paquete.package, 'pestaña avanzada', agregar -> ensamblaje existente)

Esto se puede lograr duplicando la sección XML Customation. Simplemente copie la sección de acción personalizada completa y pegue debajo de la primera sección XML de personalización y cambie el registro de registro al siguiente registro en el que desea que aparezca.

Licenciado bajo: CC-BY-SA con atribución
scroll top