2009-06-02 7 views
1

Je ne peux pas afficher le contenu d'une bibliothèque de documents à l'aide d'une vue de liste contenue dans un composant WebPart situé sur mon application Web racine.Affichage du composant WebPart Affichage de liste pour une liste dans un autre site

Voici la structure du site:

 
main_site 
    subsite1 
     Shared Documents 
    subsite2 
     Shared Documents 

Mon webpart est situé sur la main_site.

Dans cette partie WebPart, j'ai un ShareView ListPart Sharepoint dans lequel je veux montrer les documents partagés de subsite1 par exemple, mais cela ne semble pas fonctionner. Je reçois l'erreur suivante:

List does not exist

The page you selected contains a list that does not exist. It may have been deleted by another user.

Ce qui est étrange est que quand je debug, je peux voir que le SPList est correctement initialisé et contient l'élément de ma liste. Cependant, à la ligne Controls.Add(mylistview), est l'endroit où l'erreur se produit.

Voici le code que j'utilise pour lier la liste à mon ListView:

SPList list = SPContext.Current.Site.AllWebs["subsite1"].Lists["Shared Documents"]; 

ListView lv = new ListView(); 
lv.ListId = list.ID.ToString(); 
lv.ViewId = list.DefaultView.ID.ToString(); 
lv.DataBind(); 

this.Controls.Add(lv); 

Est-ce que quelqu'un a une explication logique et d'une solution à ce problème?

Répondre

3

Le problème est que la liste est dans un autre site.

Il est possible d'utiliser ListViewWebPart pour référencer une liste d'un autre site dans la même collection de sites. Vous devez utiliser la propriété WebId pour cela. Voici a code example.

Une autre option consiste à utiliser SharePoint Designer pour créer un composant WebPart Affichage de données. Cela vous permettra d'utiliser une liste provenant d'un autre site ou des services Web SharePoint pour extraire des données. Les résultats sont similaires au composant WebPart Affichage de la liste et vous pouvez utiliser certaines fonctionnalités puissantes. C'est le first blog post I found qui le démontre, il devrait y en avoir plusieurs autres. Enfin, vous pouvez utiliser le composant WebPart Requête de contenu. Vous le connaissez probablement déjà et c'est vraiment plus pour afficher et ne pas manipuler des données.

Modifié pour supprimer des informations incorrectes.

+0

ok, c'est ce dont j'avais peur. Le problème est que je voulais conserver la fonctionnalité "modifier les propriétés, afficher les propriétés, envoyer vers, ...". Est-ce que je peux encore avoir ce genre de choses en utilisant le composant WebPart Affichage de données ou cela nécessitera beaucoup de personnalisation? thx à l'avance – GillouX

+0

Il rend en utilisant une transformation XSL (comme le CQWP) afin que vous obteniez beaucoup de puissance là-bas. Cependant, les choses que vous recherchez auront besoin d'un peu de travail ou seront impossibles (je pense à 'Send To' pour ça). –

+0

Je suppose que je vais chercher une personnalisation plus profonde ou même une interface personnalisée totale pour le faire. thx pour l'information – GillouX

Questions connexes