2009-12-30 4 views
0

J'utilise le code suivant pour ajouter des composants WebPart à une page par programmation, Cependant, j'ai un problème qui après la publication de la page est la partie Web est non visible sur la page, je dois actualisez la page pour obtenir la partie Web visible,Ajouter un composant WebPart Programatically

appréciez votre soutien.

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

Répondre

1

Quelques suggestions

  • utilisation SPContext.Current.Site, SPContext.Current.Web au lieu de créer de nouvelles instances de ces objets - il est "coûteux" dans le sens de l'utilisation de la mémoire
  • try pour utiliser la classe LimitedWebpartManager (http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.webpartpages.splimitedwebpartmanager_methods.aspx) pour ajouter le composant WebPart à la page. Dans ce cas, vous n'avez pas besoin d'ajouter le webpart à la page dans chaque appel, vous devez le faire une fois dans la vie de la page. Le code ressemblera à ce

    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) 
    
Questions connexes