2015-09-22 4 views
0

Je souhaite lire le texte de mon site Web. C'est un simple: juste une ligne de texte - rien d'autre. Je peux obtenir les propriétés de mes webparts (comme title, desc etc.) mais je n'arrive pas à obtenir le contenu. Des idées pour récupérer cette information? Merci d'avance.Lire le texte de Sharepoint WebPart [C#]

using (SPSite site = new SPSite("http://mysite/pwa/some_web")) 
     { 
      using (SPWeb web = site.OpenWeb()) 
      { 
       SPFile file = web.GetFile("default.aspx"); 
       using (SPLimitedWebPartManager wpm = file.GetLimitedWebPartManager(System.Web.UI.WebControls.WebParts.PersonalizationScope.Shared)) 
       { 
        foreach (Microsoft.SharePoint.Client.WebParts.WebPart wp in wpm.WebParts) 
        {        
         Console.WriteLine("Web part: {0}", wp.Title); 
        } 
       } 
      } 
     } 
+0

Je pense, car le html ne sera généré que lorsque la partie web est chargée dans un webpart manager et est affiché sur un site, vous aurez un mauvais moment ... Pourquoi ne pas changer le webpart, quand son "votre" est? –

+0

C'est webpart qui génère des données et je veux l'utiliser dans un autre. N'ayez pas son code. – orzel

+0

Vous pourriez essayer de trouver son assemblage sur le serveur et chercher une sorte d'API ... –

Répondre

0

WebPart est la classe de base où d'autres classes de composants WebPart héritent, et ne contient que les propriétés communes telles que Title. Pour lire une propriété spécifique, vous devez convertir cet objet wp en classe réelle du composant WebPart.

Dans la boucle foreach:

MyWebPartClass mwp = (MyWebPartClass)wp; 
Console.WriteLine(wp.SomeProperty); 

MyWebPartClassWebPart et hérite de la propriété déclare SomeProperty. Notez que vous devez également vérifier d'abord que l'objet wp est en fait une partie web de votre classe, au cas où il y aurait plus de parties Web sur la même page