SharePoint: Como ocultar la Ribbon o partes de la Ribbon de forma programática!

Para poder ocultar la Ribbon de SharePoint 2010 / 2013 hay distintas técnicas que pasan por hacer uso de CSSs, del control SPSecurityTrimmedControl y por supuesto de la aproximación programática que es la forma que vamos a hacer hoy:

  • En Visual Studio (versiones 2010 a 2013), lo primero que haremos será añadir a nuestro proyecto una referencia a Microsoft.web.CommandUI.dll

image

  • A continuación, añadimos una directiva using a Microsoft.SharePoint.WebControls;
  • En mi caso, esta directiva la estoy añadiendo en el Code Behind de una Web Part muy simple que voy a desplegar en un sitio de SharePoint 2010. Y ahora la clave de poder ocultar o no la Ribbon de forma programática: la clase SPRibbon. Como veis en el código que se muestra a continuación, para ocultar la cinta:
    • Creamos una instancia de la cinta haciendo uso del método GetCurrent() de SPRibbon.
    • A continuación, simplemente asignamos “false” a al propiedad CommandUIVisible y listo.
   1: try

   2: {

   3:     //Accedemos a la Ribbon de la página

   4:     SPRibbon sprCinta = SPRibbon.GetCurrent(this.Page);

   5:     if (sprCinta != null)

   6:     {

   7:         sprCinta.CommandUIVisible = false;

   8:     }

   9: }

  10: catch (Exception ex)

  11: {

  12:     lblInformation.Text = ex.Message;

  13: }

  • A partir de aquí simplemente nos queda mostrar como ocultamos la cinta de forma completa.

image

  • Lo interesante de SPRibbon es que también nos permite ocultar secciones de la Ribbon haciendo uso del método TrimById que únicamente espera que le indiquemos la sección a ocultar. Por ejemplo, para ocultar la sección “Administrar” en a Ribbon de una página Wiki simplemente tenemos que especificar Ribbon.WikiPageTab.Manage. Para más información sobre las secciones de la Ribbon, te recomiendo el siguiente enlace: http://msdn.microsoft.com/en-us/library/ee537543(office.14).aspx (SharePoint 2010)
   1: try

   2: {

   3:     //Accedemos a la Ribbon de la página

   4:     SPRibbon sprCinta = SPRibbon.GetCurrent(this.Page);

   5:     if (sprCinta != null)

   6:     {

   7:         sprCinta.TrimById("Ribbon.WikiPageTab.Manage");

   8:         sprCinta.TrimById("Ribbon.WikiPageTab.Share");

   9:         sprCinta.TrimById("Ribbon.WikiPageTab.LibrarySettings");

  10:     }

  11: }

  12: catch (Exception ex)

  13: {

  14:     this.lblInformation.Text = ex.Message;

  15: }

  • Comprobamos que con el código anterior conseguimos el efecto de ocultar solo ciertas partes de la Ribbon.
image image