SharePoint Online: Cómo abrir ventanas modales desde WebParts!

Hace un tiempo escribía como nos las podemos ingeniar para abrir una ventana modal, aprovechando el framework de ventanas modales de SharePoint 2010, desde una WebPart visual. La solución pasaba por registrar el correspondiente JavaScript en el servidor de manera que luego pudiese ser utilizado en la página devuelta por el mismo….¿y esto funciona con soluciones Sandbox? Pues sí, pero no de la misma forma (sorprendentemente):

  • Creamos un proyecto de tipo vacío para SharePoint 2010 y elegimos como tipo de despliegue Sandbox.
  • Creamos una pequeña WebPart visual (preparada para el Sandbox) que cuente con un botón por ejemplo.

image

  • Codificamos la WebPart de manera que al evento OnClientClick del botón le añadamos la llamada a la función JavaScript responsable de abrir la ventana modal.
   1: protected void Page_Load(object sender, EventArgs e)

   2: {

   3:     //Añadimos el manejador para Control.PreRender

   4:     if (!Page.IsPostBack)

   5:     {

   6:         string sTargetuRl =

   7:             "http://www.ciin.es";

   8:         this.btnRequest.OnClientClick =

   9:             @"OpenDialog('" +

  10:             sTargetuRl +

  11:             "'); return false;";

  12:     }

  13: }

  • Y es aquí donde llega la diferencia con respecto al caso de la WebPart visual ya que aparentemente añadir un evento PreRender() no es suficiente para registrar el código JavaScript correspondiente.
  • ¿Y qué hacemos? Pues añadir el código JavaScript en la página de otra forma…por ejemplo en una WebPart editor de contenido.
   1: <script language='javascript'>

   2:     function OpenDialog(formURL) 

   3:     {

   4:         var options = SP.UI.$create_DialogOptions();

   5:         options.url = formURL;

   6:         SP.UI.ModalDialog.showModalDialog(options); 

   7:     }

   8: </script>

  • Y a partir de aquí, simplemente añadimos el código anterior en la WebPart de tipo Editor de contenido.
  • Guardamos los cambios.
  • Comprobamos que la ventana modal se muestra.
image image image

Siempre me queda la duda de si alguna vez SharePoint no me sorprenderá y la verdad, creo que siempre me sorprenderá…todos los días se aprende algo nuevo.

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.

4 comentarios en “SharePoint Online: Cómo abrir ventanas modales desde WebParts!”

Deja un comentario

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