2009-12-30 2 views
0

웹 파트를 프로그래밍 방식으로 페이지에 추가하려면 다음 코드를 사용합니다. 그러나 페이지에 게시 된 후 웹 파트가 페이지에 보이지 않으면 문제가 생겼습니다. 페이지를 새로 고침하여 웹 파트를 가져 오십시오. 표시 :웹 파트 추가 프로그래밍 방식으로

감사합니다.

SPSite site = new SPSite("http://syngdcds0032:23547"); 
     site.AllowUnsafeUpdates = true; 
     SPWeb web = site.OpenWeb(); 
     web.AllowUnsafeUpdates = true; 
     SPList list = web.Lists["Assets"]; 
     SPView setView = list.Views["VVV"]; 

     // Instantiate the web part 
     ListViewWebPart wp = new ListViewWebPart(); 
     wp.ZoneID = "Left"; 
     wp.ListName = list.ID.ToString("B").ToUpper(); 
     //wp.ViewGuid = list.DefaultView.ID.ToString("B").ToUpper(); 
     wp.ViewGuid = setView.ID.ToString("B").ToUpper(); 
     // Get the web part collection 
     SPWebPartCollection coll = 
      web.GetWebPartCollection("http://syngdcds0032:23547/Pages/AssetSearch1.aspx", 
      Storage.Shared); 

     // Add the web part 
     coll.Add(wp); 

답변

1

제안

  • 사용 SPContext.Current.Site, SPContext.Current.Web 대신 그 객체의 새로운 인스턴스 생성의 - 그것은 메모리 사용
  • 시도의 의미에서 "비용"의를 웹 파트를 페이지에 추가하기 위해 LimitedWebpartManager 클래스 (http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.webpartpages.splimitedwebpartmanager_methods.aspx)를 사용합니다. 이 경우 모든 호출에서 페이지에 웹 파트를 추가 할 필요가 없으므로 페이지 수명 기간에 한 번 수행해야합니다. 코드는 다음과

    Dim op As WebPartPages.SPLimitedWebPartManager 
        op = oWeb.GetLimitedWebPartManager("default.aspx", Web.UI.WebControls.WebParts.PersonalizationScope.Shared) 
        oWP = New WebPartPages.ListViewWebPart 
        oWP.ListName = oWeb.Lists("Workflow tasks").ID.ToString("B").ToUpper() 
        oWP.AllowClose = False 
        oWP.AllowHide = False 
        oWP.AllowMinimize = False 
        oWP.AllowZoneChange = True 
        oWP.ExportMode = Web.UI.WebControls.WebParts.WebPartExportMode.All 
        oWP.Title = "Darba uzdevumi" 
        oWP.ChromeType = Web.UI.WebControls.WebParts.PartChromeType.TitleOnly 
        oWP.ViewGuid = oWeb.Lists("Workflow tasks").Views("All Items").ID.ToString("B").ToUpper() 
        oWP.ZoneID = "Right" 
        op.AddWebPart(oWP, "Right", 1) 
    
과 같을 것