Iterating Through All WebParts On Page

One of my friends instant messaged me this morning and asked if it was feasible to use a method that would take an SPWeb object, and a URL as a parameter in order to return a collection of all the WebParts that coordinated with the URL. I haven’t tested this method, but this is what I put together for him:

[csharp]

private static List GenerateWebPartCollection(SPWeb web, string url)
{
// Create A New SPLiimitedWebPartManager object to perform some WebPart operations on the page
SPLimitedWebPartManager splwManager = web.GetLimitedWebPartManager(url, PersonalizationScope.Shared);

// Create a new generic collection that represents all the WebParts we found
List wpCollection = new List();

// Loop through all the WebParts that are available
foreach (WebPart webpart in splwManager.WebParts)
{
// if the generic collection does not contains that WebPart, add it
if (wpCollection.Contains(webpart))
{
wpCollection.Add(webpart);
}
}

// return the generic collection of WebParts to get consumed later
return wpCollection;
}

[/csharp]

Its a pretty simple method, the return should just be a colleciton of the WebPart objects that can be used later for whatever his application was attempting to do.

Share

Leave a Reply

Your email address will not be published. Required fields are marked *