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.

Était-ce utile?

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à sharepoint.stackexchange
scroll top