2009-10-05 5 views

Répondre

8

Vous pouvez utiliser SPWebPartManager pour parcourir une liste de composants WebPart dans une page.

Voir this MSDN example.

EDIT: Ce est peut-être un meilleur exemple:

private static void GetWebParts() 
{ 
    using (SPSite site = new SPSite("<YOUR SITE URL>")) 
    { 
    using (SPWeb web = site.OpenWeb()) 
    { 
     SPFile file = web.GetFile("default.aspx"); // or what ever page you are interested in 
     using (SPLimitedWebPartManager wpm = file.GetLimitedWebPartManager(System.Web.UI.WebControls.WebParts.PersonalizationScope.Shared)) 
     { 
     foreach (WebPart wp in wpm.WebParts) 
     { 
      Console.WriteLine("Web part: {0}", wp.Title); 
     } 
     } 
    } 
    } 
} 
-2

Ajout de pièces web est simple, programmation:

SPWeb site = SPContext.Current.Web; 
SPFile page = web.GetFile("Pages/somepage.aspx"); 
using (SPLimitedWebPartManager webPartManager = page.GetLimitedWebPartManager(PersonalizationScope.Shared)) 
{ 
    try 
    { 
     // logic to get web parts here. 
     ContentEditorWebPart webPart = new ContentEditorWebPart();  
     webPart.Title = "Test Web Part"; 
     webPartManager.AddWebPart(webPart, "Zone 1", 0); 
    } 
    finally 
    { 
     // SPLimitedWebPartManager has known memory leak where it does not dispose SPRequest object in its SPWeb, so dispose it 
     webPartManager.Web.Dispose(); 
    } 
} 
Questions connexes