SharePoint: Como crear programáticamente una página de Web Parts!

Si queréis crear programáticamente una página de Web Parts, no hay problemas en hacerlo con el único detalle de que es necesario hacer uso del método NewWebPage que se utiliza de forma completamente declarativa como podéis ver a continuación:

   1: static void CreateWebPartsPage()

   2: {

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

   4:     {

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

   6:         {

   7:             SPList splLista = spwSitio.Lists["Páginas del sitio"];

   8:             string sPlantillaPagina = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +

   9:                 "<Batch>" +

  10:                     "<Method ID=\"0,NewWebPage\">" +

  11:                     "<SetList Scope=\"Request\">{0}</SetList>" +

  12:                     "<SetVar Name=\"Cmd\">NewWebPage</SetVar>" +

  13:                     "<SetVar Name=\"ID\">New</SetVar>" +

  14:                     "<SetVar Name=\"Type\">WebPartPage</SetVar>" +

  15:                     "<SetVar Name=\"WebPartPageTemplate\">{2}</SetVar>" +

  16:                     "<SetVar Name=\"Overwrite\">true</SetVar>" +

  17:                     "<SetVar Name=\"Title\">{1}</SetVar>" +

  18:                     "</Method>" +

  19:                     "</Batch>";

  20:  

  21:             var NuevaPagina = 

  22:                 string.Format(sPlantillaPagina, splLista.ID, "ProgramaticWebPage", 2);

  23:            splLista.ParentWeb.ProcessBatchData(NuevaPagina);

  24:         }                

  25:     }

  26: }

Como podéis ver, para crear una nueva página de Web Parts de forma programática:

  • Definimos de forma declarativa la llamada a NewWebPage entre otros parámetros el tipo de plantilla a usar que podéis encontrar también en la página de referencia NewWebPage.
  • A continuación, especificamos otros parámetros como el ID de la biblioteca donde vamos a crear la página, el nombre de la página y el código de la plantilla de página de WebParts a usar.
  • Finalmente, para crear la página en base a la definición llamamos al método ProcessBatchData().