Déplacement d'un composant WebPart à une autre zone sur une page
-
16-10-2019 - |
Question
Comment puis-je déplacer un programme d'une zone WebPart à un autre sur une page?
J'ai plusieurs sites que je veux boucler sur chaque site et mettre à jour la page.
La solution
Utilisez la méthode 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();
}
}
Autres conseils
En plus de la réponse d'Alex, soyez prudent lorsque vous itérer vos collections de sites et des sites. Si vous faites cela à partir par exemple une application console où vous devez établir votre propre contexte, vous serez à court de mémoire très rapide si vous oubliez de jeter vos objets SPSite et SPWeb tout itérer (par exemple. Sites.AllWebs).
lire et comprendre les lignes directrices sur MSDN disposant: Meilleures pratiques: Utilisation de Windows SharePoint à usage unique services objets