SharePoint 2013: Disponible para descarga los SDK (también para Apps)!

Pues eso, que aprovechando que estamos por Seattle el amigo Alberto y yo, Microsoft acaba de liberar los SDK de SharePoint 2013 por un lado y de Aplicaciones para SharePoint y Office por otro. Los enlaces de descarga respectivos son:

SharePoint: Cómo añadir programáticamente código JavaScript en una página (I)!

En este artículo o voy a enseñar una primera técnica para añadir código JavaScript de forma programática a una página de SharePoint. Por ejemplo, imaginaros que tenéis que ocultar en SharePoint 2010 el calendario en miniatura que aparece en la vista de Calendario de una lista de este tipo. ¿Cómo lo hacemos de forma programática? Pues por ejemplo, añadiendo una Web Part de tipo Editor de Contenido de forma programática y configurando la misma de forma que añadamos el código JavaScript necesario para ocultar el contenedor (<DIV>) en el que se encuentra el calendario en miniatura:

  • En primer lugar, necesitáis añadir las correspondientes directivas using.
  •    1: using Microsoft.SharePoint;

       2: using SPWebPartPages = Microsoft.SharePoint.WebPartPages;

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

       4: using System.Xml;

    A partir de aquí, para añadir la Web Part editor de contenido de forma programático en la página Calendar.aspx no tenéis más que hacer uso del siguiente código:

   1: static void OcultarCalendario()

   2: {

   3:     using (SPSite spsSitio = new SPSite("http://demo2010a:200/"))

   4:     {

   5:         using (SPWeb spwWeb = spsSitio.OpenWeb())

   6:         {

   7:             //WebPart Manager

   8:             SPWebPartPages.SPLimitedWebPartManager spwpmWebPartManager =

   9:                 spwWeb.GetLimitedWebPartManager("Lists/Calendario/calendar.aspx",

  10:                     PersonalizationScope.Shared);

  11:  

  12:             //Guid para la WebPart

  13:             Guid storageKey = Guid.NewGuid();

  14:             string wpId = String.Format("g_{0}", storageKey.ToString().Replace('-', '_'));

  15:  

  16:             //Content Editor WebPart

  17:             XmlElement p = new XmlDocument().CreateElement("p");

  18:             p.InnerText = "<script language='javascript'>" +

  19:                 "_spBodyOnLoadFunctionNames.push('OcultarCalendario');" +

  20:                 "function OcultarCalendario()" +

  21:                 "{document.getElementById('DatePickerDiv').style.display = 'none';}</script>";

  22:  

  23:             SPWebPartPages.ContentEditorWebPart cewp = 

  24:                 new SPWebPartPages.ContentEditorWebPart

  25:             {

  26:                 Content = p,

  27:                 ID = wpId

  28:  

  29:             };

  30:             spwpmWebPartManager.AddWebPart(cewp, "Principal", 1);

  31:             spwpmWebPartManager.Dispose();

  32:         }

  33:     }

  34: }

Cómo veis:

  • Fuera del necesario uso de SPLimitedWebPartManager, tenemos que crearnos una instancia de ContentEditorWebPart que expone dos propiedades que vamos a configurar:
    • El identificador de la Web Part.
    • El contenido, que puede ser contenido textual convencional o bien código HTML incluyendo código JavaScript como es mi caso. Fijaros que estoy añadiendo el código JavaScript necesario para ocultar el contenedor <DIV> en el que se encuentra el mini-calendario
  • Añadimos la Web Part en una zona de Web Parts usando AddWebPart() y listo.