Frage

Wie verschiebe ich programmgesteuert ein Webpart von einer Zone auf eine Seite auf eine andere?

Ich habe mehrere Websites, die ich durch jede Site durchlaufen und die Seite aktualisieren möchte.

War es hilfreich?

Lösung

Verwenden Sie das SplimitedWebPartManager.MoveWebPart Methode:

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();
    }
}

Andere Tipps

Seien Sie zusätzlich zu der Antwort von Alex vorsichtig, wenn Sie Ihre Site -Sammlungen und Websites iterieren. Wenn Sie dies beispielsweise aus einer Konsolenanwendung tun, in der Sie Ihren eigenen Kontext festlegen müssen, werden Sie beim Iterieren (z. B. Websites.Allwebs) Ihren eigenen Kontext sehr schnell ausgehen, wenn Sie vergessen, Ihre Splines- und SPWEB -Objekte zu entsorgen.

Lesen und verstehen Sie die Entsendungsrichtlinien auf MSDN:Best Practices: Verwendung von verfügbaren Windows SharePoint Services -Objekten

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit sharepoint.stackexchange
scroll top