SharePoint 2010: Como añadir “verbos” personalizados a una WebPart!

Las WebParts en SharePoint 2010, como casi toda la plataforma, son muy extensibles de manera que podemos añadir nuevas personalizaciones a distintos niveles: propiedades en la Toolpart, conexiones de Webparts, o verbos. Precisamente sobre estos últimos trata este post….¿Qué es un “verbo” en una WebPart? pues no es más qué cualquier opción de menú disponible en el menú contextual de la misma:

image

Para añadir nuevos “verbos” a una WebPart tenemos que sobreescribir la propiedad Verbs disponible en la clase base WebPart. Esta propiedad nos devuelveun WebPartVerbCollection teniendo en cuenta que tenemos tres tipos de verbos:

  • Del lado del servidor, es decir, se necesita hacer una petición al servidior.
  • Del lado del cliente, es decir, todo se hace en el cliente vía JavaScript.
  • Del lado del cliente y del lado del servidor, es decir, primero se ejecuta algo de trabajo en el cliente y luego algo en el servidor.

Dicho esto, para añadir nuestros verbos a la WebPart basta con sobreescribir la propiedad comentada como por ejemplo:

   1: using System;

   2: using System.ComponentModel;

   3: using System.Web;

   4: using System.Web.UI;

   5: using System.Web.UI.WebControls;

   6: using System.Web.UI.WebControls.WebParts;

   7: using Microsoft.SharePoint;

   8: using Microsoft.SharePoint.WebControls;

   9:  

  10: namespace SPLINQWP.SPLINQToSPCRWP

  11: {

  12:     [ToolboxItemAttribute(false)]

  13:     public class SPLINQToSPCRWP : WebPart

  14:     {

  15:         // Visual Studio might automatically update this path when you change the Visual Web Part project item.

  16:         private const string _ascxPath = @"~/_CONTROLTEMPLATES/SPLINQWP/SPLINQToSPCRWP/SPLINQToSPCRWPUserControl.ascx";

  17:         protected Label lblMessage;

  18:  

  19:         protected override void CreateChildControls()

  20:         {

  21:             Control control = Page.LoadControl(_ascxPath);

  22:             lblMessage = new Label();

  23:             Controls.Add(control);

  24:             Controls.Add(lblMessage);

  25:         }

  26:  

  27:         public override WebPartVerbCollection Verbs

  28:         {

  29:             get

  30:             {

  31:                 WebPartVerb ssWebPartVerb = new WebPartVerb("serverSiteVerbId", handlessWebPartVerb);

  32:                 ssWebPartVerb.Text = "Verbo en el lado del servidor";

  33:                 WebPartVerb csWebPartVerb = new WebPartVerb("clientSideVerbId", "javascript:alert('Has pulsado un verbo en el lado del cliente');");

  34:                 csWebPartVerb.Text = "Verbo en el lado del cliente";

  35:                 WebPartVerb cssWebPartVerb = new WebPartVerb("clientAndServerSideVerbId",

  36:                     handlessWebPartVerb, "javascript:alert('Has pulsado un verbo en el lado del cliente');"

  37:                     );

  38:                 cssWebPartVerb.Text = "Verbo en el lado del cliente y del servidor";

  39:                 WebPartVerbCollection wpvcColeccionVerbos= new WebPartVerbCollection(

  40:                     new WebPartVerb[] {

  41:                         ssWebPartVerb, csWebPartVerb, cssWebPartVerb,

  42:                     }

  43:                     );

  44:                 return (new WebPartVerbCollection(base.Verbs, wpvcColeccionVerbos));

  45:             }

  46:         }

  47:  

  48:  

  49:         protected void handlessWebPartVerb(Object source, WebPartEventArgs args)

  50:         {

  51:             EnsureChildControls();

  52:             this.lblMessage.Text = "Se ha realizado una llamada al servidor";

  53:         }

  54:     }

  55: }

Hacemos el despliegue de la WebPart y comprobamos:

  • Que los nuevos verbos están disponibles.
  • Que el verbo en el lado del cliente funciona como se ha configurado.
  • Que el verbo en el lado del servidor funciona también como se espera.

 

image image image

Publicado por

Juan Carlos González

Juan Carlos es Ingeniero de Telecomunicaciones por la Universidad de Valladolid y Diplomado en Ciencias Empresariales por la Universidad Oberta de Catalunya (UOC). Cuenta con más de 12 años de experiencia en tecnologías y plataformas de Microsoft diversas (SQL Server, Visual Studio, .NET Framework, etc.), aunque su trabajo diario gira en torno a SharePoint & Office 365. Juan Carlos es MVP de Office Servers & Services desde 2015 (anteriormente fue reconocido por Microsoft como MVP de Office 365 y MVP de SharePoint Server desde 2008 hasta 2015), coordinador del grupo de usuarios .NET de Cantabria (Nuberos.Net, www.nuberos.es), co-fundador y coordinador del Grupo de Usuarios de SharePoint de España (SUGES, www.suges.es), así como co-director de la revista gratuita en castellano sobre SharePoint CompartiMOSS (www.compartimoss.com). Hasta la fecha, ha publicado 8 libros sobre SharePoint & Office 365 y varios artículos en castellano y en inglés sobre ambas plataformas.

Un comentario en “SharePoint 2010: Como añadir “verbos” personalizados a una WebPart!”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *