Question

Les données de liste peuvent être exposées via un service Web, mais comment les composants WebPart peuvent-ils également être exposés via un service Web ?

Je pense que cette question est similaire à https://stackoverflow.com/questions/7115858/sharepoint-2010-web-part-expose-web-service , la différence étant que je souhaite exposer le contenu du composant WebPart via un appel de service Web sharepoint, est-ce possible ?

par exemple :si le composant WebPart contient une image, exposez cette image via le service Web Sharepoint

Était-ce utile?

La solution

Je ne sais pas comment vous feriez cela via un service Web, si vous le pouvez même.Cependant, vous pouvez facilement le faire avec le script côté client à l'aide d'Ajax.Il suffit d'obtenir la page avec la partie Web, d'analyser le contenu et de l'afficher où vous souhaitez dans la page en cours.

Autres conseils

S'il s'agit simplement d'obtenir du contenu WebPart à partir d'une page accessible dans le même domaine, je ne pense pas que vous aurez besoin d'un service Web pour cela.

Vous pouvez placer votre webpart dans un div (id=container) et utiliser ci-dessous Jquery :

$('#result').load('sitepages/test.aspx #container');

Lorsque cette méthode s'exécute, elle récupère le contenu de pages du site/test.aspx, puis jQuery analyse le document renvoyé pour trouver l'élément avec un ID de conteneur.Cet élément, ainsi que son contenu, est inséré dans l'élément portant l'ID result, et le reste du document récupéré est ignoré.

Si vous devez accéder au contenu du composant WebPart sur une page en dehors du domaine, vous utilisez contents() fonction jquery comme mentionné ici :

https://stackoverflow.com/questions/1796619/how-to-access-the-content-of-an-iframe-with-jquery

Dans tous les cas, si vous êtes déterminé à opter pour le service Web, vous devez coder pour cela.Dans la méthode Web, vous pouvez analyser la page et renvoyer le contenu des sections HTML dont vous avez besoin en utilisant HTMLAgilitéPack

Un élément Web est destiné à afficher le contenu, de ne pas fournir un référentiel de contenu pour d'autres composants. Quelques options:

  1. Peut-être que vous n'avez pas besoin d'une partie du tout, créez une liste et stockez l'image là-bas.

  2. Peut-être avez-vous également besoin d'une partie Web. Créez une liste, stockez l'image là-bas et référez cette image de la partie Web. D'autres composants pourraient alors également référencer la même liste.

  3. Il existe peut-être plusieurs images disponibles, mais la partie Web fait une certaine logique pour déterminer laquelle est l'image "active" à afficher. Dans ce cas, a) Déplacez cette logique à un service Web personnalisé et appelez ce même service Web à partir de la partie Web ainsi que d'autres composants, ou b) Demandez à la partie Web de mettre à jour une liste personnalisée avec le nom / le chemin de la route de l'image "active" actuelle. D'autres composants pourraient lire la liste personnalisée pour obtenir l'image. (J'aime mieux l'idée d'un service Web personnalisé, mieux d'une base architecturale, mais il serait tout à fait plus difficile de mettre en place dans SharePoint. Avoir une liste personnalisée que les mises à jour de la partie Web ne semblent pas être aussi propres, mais serait beaucoup plus facile à mettre en place.)

Licencié sous: CC-BY-SA avec attribution
Non affilié à sharepoint.stackexchange
scroll top