4 Stimmen

Abrufen einer Liste von Webparts auf einer Seite

Ich versuche, eine Liste von Webparts zu erhalten, die auf einer Webseite in Sharepoint 3.0 bereitgestellt werden.

8voto

Magnus Johansson Punkte 27363

Sie können den SPWebPartManager verwenden, um durch eine Liste von Webparts auf einer Seite zu iterieren.

Voir dieses MSDN-Beispiel .

EDIT: Dies ist vielleicht ein besseres Beispiel:

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

-2voto

Anders Rask Punkte 862

Das programmatische Hinzufügen von Webparts ist einfach:

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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X