Para aprovisionar de webparts una página que ya tenemos creada en Sharepoint, lo primero que tenemos que hacer, es identificar las zonas donde vamos a ubicar los webparts seleccionados para desarrollar el ejemplo.
En este caso en concreto vamos a utilizar las zonas (superiorDerecha, superiorIzquierda,footer y sidebar), que son las zonas que tenemos dadas de alta en nuestro Layout. Para identificar estos valores tenemos que buscar en el código fuente del Layout todos los webpartZones que tenemos, esto podremos hacerlo abriendo designer y visualizando la plantilla. Nota: Recuerda que lo que necesitamos son los identificadores de las zonas.
El código necesario para aprovisionar la página lo vamos a colocar en un EventReceiver dentro de nuestra feature.(Pulsando con el botón derecho del ratón sobre la feature).
public override void FeatureActivated(SPFeatureReceiverProperties properties)
{
using (SPSite site = new SPSite(((SPWeb)properties.Feature.Parent).Site.ID))
{ using (SPWeb web = site.OpenWeb("URLDELSITE"))
{
ProvisioningHome(web, "index.aspx");
}
}
}
private void ProvisioningHome(SPWeb web, string PageUrl)
{
SPLimitedWebPartManager webParts = web.GetLimitedWebPartManager(PageUrl,
System.Web.UI.WebControls.WebParts.PersonalizationScope.Shared);
//EDITOR DE CONTENIDO
ContentEditorWebPart ContentEditorSidebar = new ContentEditorWebPart();
XmlDocument xmlDoc = new XmlDocument();
XmlElement xmlContent = xmlDoc.CreateElement("MyElement");
xmlContent.InnerText = @"TEXTO DE PRUEBA";
ContentEditorSidebar.Content = xmlContent;
ContentEditorSidebar.ChromeType = System.Web.UI.WebControls.WebParts.PartChromeType.None;
ContentEditorSidebar.ChromeState = System.Web.UI.WebControls.WebParts.PartChromeState.Normal;
webParts.AddWebPart(ContentEditorSidebar, "g_BEAA2A68F8D94E7DA072E8E5F2A4719B", 0);
webParts.SaveChanges(ContentEditorSidebar);
//Vista de una lista
SPList listaHelp =
web.Site.OpenWeb("URLDELALISTA\Allitems.aspx").Lists["NOMBREDELALIASTA"];
string viewId = listaHelp.Views["NOMBREDELAVISTA"].ID.ToString();
XsltListViewWebPart viewWebPartHelpAsignadas = new XsltListViewWebPart();
viewWebPartHelpAsignadas.AllowEdit = true;
viewWebPartHelpAsignadas.WebId = listaHelp.ParentWeb.ID;
viewWebPartHelpAsignadas.ListId = listaHelp.ID;
viewWebPartHelpAsignadas.ViewGuid = viewId;
viewWebPartHelpAsignadas.ChromeType = System.Web.UI.WebControls.WebParts.PartChromeType.None;
viewWebPartHelpShareAsignadas.ChromeState = System.Web.UI.WebControls.WebParts.PartChromeState.Normal;
webParts.AddWebPart(viewWebPartHelpAsignadas, "g_BEAA2A68F8D94E7DA072E8E5F2A4719B", 1);
webParts.SaveChanges(viewWebPartHelpAsignadas);
//Consulta de contenido
SPList listaContactos = web.Lists["NOMBREDELALISTA"];
ContentByQueryWebPart cqWebPart = new ContentByQueryWebPart();
cqWebPart.Title = "Contactos";
cqWebPart.WebUrl = web.ServerRelativeUrl;
cqWebPart.ListName = listaContactos.Title;
cqWebPart.ListId = listaContactos.ID;
cqWebPart.ChromeType = System.Web.UI.WebControls.WebParts.PartChromeType.None;
cqWebPart.ChromeState = System.Web.UI.WebControls.WebParts.PartChromeState.Normal;
webParts.AddWebPart(cqWebPart, "g_BEAA2A68F8D94E7DA072E8E5F2A4719B", 3);
webParts.SaveChanges(cqWebPart);
}
No hay comentarios:
Publicar un comentario