2008-09-16 7 views
1

J'ai créé un composant WebPart pour Sharepoint qui extrait des données d'un service externe. Je voudrais afficher les éléments d'une manière qui est compatible avec l'interface utilisateur avec Sharepoint (correspond à son environnement.)Sharepoint: meilleur moyen d'afficher des listes de contenu non-Sharepoint avec une interface utilisateur "compatible"?

Je suis au courant de la "DataFormWebPart", mais n'a pas réussi à fonctionner correctement. Il nécessite une DataSource valide et je n'ai pas pu en créer un à partir des résultats d'un appel de service Web ... Une partie du problème est que les wrappers de service Web n'exposent pas les informations de retour XML, mais plutôt un tas d'objets désérialisés . Il ne semble pas y avoir un moyen facile de transformer des objets réels en une source de données, ou de remplir une source de données "générique" à partir de données d'objet.

Je pourrais utiliser un SPGridView pour obtenir la même interface utilisateur, mais le contrôle de la grille n'a pas grand-chose à faire - et il force chaque champ dans sa propre colonne. Je préférerais rendre chaque élément de la liste comme une seule cellule avec un rendu complexe (par exemple la façon dont StackOverflow montre ses listes de questions). J'aimerais aussi obtenir le maximum d'interface utilisateur standard Sharepoint, comme: les contrôles de tri, de filtrage et de pagination. Donc, d'abord: Est-ce que quelqu'un ici a écrit un contrôle Sharepoint qui fait cela, et si oui, avez-vous un code à partager? Si non: est-ce que je néglige un contrôle utile, qu'il soit fourni par MS ou disponible dans une bibliothèque externe?

Merci! Steve

Répondre

2

Sharepoint: La meilleure façon d'afficher des listes de contenu non avec Sharepoint UI « compatible »?

Jetez un oeil à la construction dans les contrôles web sharepoint:

Microsoft.SharePoint.WebControls Namespace

Il contient tous les contrôles utilisés dans sharepoint.Je vous en dirais plus, mais la documentation est très complète.

0

Problème avec SharePoint est qu'il existe un tas de façons différentes de le faire. Si vos données ne changent pas trop souvent et ne sont pas trop volumineuses, il peut être utile de les entrer dans une liste pour les afficher. Si vous possédez la licence Enterprise, il peut être utile de récupérer vos données dans le contrôleur secondaire de domaine et de les utiliser à cet endroit. vous devrez peut-être convertir les objets en xml ou utiliser les objets sérialisés avec le webpart XML pour l'affichage. Cela a toujours le problème du rendu personnalisé en utilisant XSLT.

+0

Merci Nat. Les données externes sont volumineuses (résultats de recherche externes), il n'est donc pas possible de les conserver en tant que nouvelle liste. Nous sommes un plugin SharePoint donc je ne peux pas garantir que le BDC sera disponible à toutes les installations. Je suppose que je n'ai pas de chance avec tes suggestions mais j'apprécie la réponse! –

0

est ici un article qui explique comment configurer les connexions BDC aux services Web en utilisant la BDC Définition Editeur:

Création d'une connexion de service Web à l'aide du catalogue de données métiers Définition Editeur http://msdn.microsoft.com/en-us/library/bb737887.aspx

+0

Malheureusement, j'ai besoin de quelque chose d'un peu différent: je construis une partie Web qui doit afficher les résultats en direct d'un appel de service Web - il ne fait pas partie des résultats de recherche réguliers. Merci cependant, c'est un lien très utile pour quelque chose d'autre sur lequel je travaille qui implique de modifier la page de recherche! –

0

Le La meilleure façon de faire cela est de créer un composant WebPart. En tant que composant WebPart, l'interface utilisateur sera automatiquement rendue identique au thème utilisé par le site (à moins que vous ne le remplaciez) et pourra être placée n'importe où par n'importe qui ayant des privilèges d'administrateur.

+0

J'apprécie la réponse. Mais c'est une étape d'introduction que j'ai déjà prise. Mon problème est un peu plus long; J'ai une partie Web existante et j'ai besoin d'ajouter une liste. Il semble qu'il n'y a pas de moyen facile de créer exactement le type de partie Web dont j'ai besoin - mais je vais plonger dans votre site web et voir! –

0

Vous pouvez créer un composant WebPart personnalisé et utiliser un SPGridView. Vous dites que vous ne l'aimez pas, parce que cela force chaque champ dans sa propre colonne, mais ce n'est pas vrai. Vous pouvez créer un modèle (ITemplate) pour chaque colonne et personnaliser complètement ce qui est affiché à l'intérieur, comme vous le feriez avec un GridView ASP.Net normal. En utilisant cette approche, j'ai ajouté les petites images "New" juste à côté du titre d'un élément de liste, tout comme SharePoint le fait lui-même.

Questions connexes