Mover un WebPart a una zona diferente en una página
-
16-10-2019 - |
Pregunta
¿Cómo mediante programación mover un WebPart de una zona a otra en una página?
Tengo varios sitios que quiero recorrer cada sitio y actualizar la página.
Solución
Utilice el método href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.webpartpages.splimitedwebpartmanager.movewebpart.aspx"> SPLimitedWebPartManager.MoveWebPart :
string zoneId = "TopZone"; // ID of the WebPartZone control
string zoneIndex = 0; // Location of web part within zone
string webPartTitle = "Sales Tips"; // Title of web part
string filename = "default.aspx"; // Filename relative to SPWeb object
using (SPLimitedWebPartManager webPartManager =
site.GetLimitedWebPartManager(filename, PersonalizationScope.Shared))
{
try
{
foreach (WebPart webPart in webPartManager.WebParts)
{
if (webPart.Title == webPartTitle)
{
webPartManager.MoveWebPart(webPart, zoneId, zoneIndex);
webPartManager.SaveChanges(webPart);
break;
}
}
}
finally
{
webPartManager.Web.Dispose();
}
}
Otros consejos
Además de la respuesta de Alex, tenga cuidado al iterar las colecciones de sitios y sitios. Si lo hace a partir, por ejemplo, una aplicación de consola en la que tiene que establecer su propio contexto, se quede sin memoria muy rápido si se olvida de disponer su SPSite y SPWeb objetos, mientras que la iteración (por ejemplo. Sites.AllWebs).
leer y entender las instrucciones de disposición en MSDN: Mejores Prácticas: El uso de desechables de Windows SharePoint Servicios de Objetos