2009-10-05 4 views
4

SharePoint 3.0의 웹 페이지에 배포 된 webparts 목록을 가져 오려고합니다. SharePoint 콘텐츠 데이터베이스에서 가져올 수있는 방법이 있습니까? 아니면 프로그래밍 방식으로 할 수 있습니까?페이지의 웹 파트 목록 검색

답변

8

SPWebPartManager를 사용하여 페이지의 웹 파트 목록을 반복 할 수 있습니다.

this MSDN example을 참조하십시오.

편집 : 이 어쩌면 더 좋은 예입니다

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

웹 파트를 추가하면 프로그램 간단하다 :

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