none
Afficher l'arborescence d'un site sharepoint RRS feed

  • Question

  • Bonjour, j'ai pour projet, dans le cadre de mon stage de BTS IG 2ieme année de développer des webparts.
    Et l'une d'elle consiste a lister tous les éléments d'une ferme de site, or j'ai un soucis pour afficher les bibliotheques de documents et leurs contenus; ca va faire deux jours que je suis deçu et j'ai épuisé toutes les idées que j'avais. HELP :)

    voici mon code :

     

     

    if (oList.ItemCount != 0)
    
    {
    
    //on affihe le nom des documents de la liste
    
    for (int i = 1; i <= oList.ItemCount; i++)
    
    {
    
    this.Controls.Add(new LiteralControl("<dd><dd><dd>"));
    
    this.Controls.Add(new LiteralControl(oList.Items[i-1].Name.ToString()));
    
    }
    
    }
    

    J'ai essayais de nombreuses autres méthode mais sans succés...




    vendredi 19 février 2010 10:03

Réponses

Toutes les réponses

  • Bonjour,

    j'imagine que ça fait deux jours que vous êtes dessus :-)

    Voici un exemple de parcours d'arborescence (depuis une webpart) :

    using(SPWeb web = SPContext.Current.Web)
    {
    	foreach(SPList list in web.Lists)
    	{
    		foreach(SPListItem item in list)
    		{
    			// jouez ici avec les propriétés de l'item
    		}
    	}
    }

    Vous trouverez des exemples plus aboutis (avec collection de sites et sous sites, bibliothèques de documents, etc.) sur le projet SharePoint Inspector (il permet de parcourir toute l'arborescence SharePoint). Son code source est disponible sur CodePlex.

    Bon courage.

    Sébastien PICAMELOT - http://blogs.developpeur.org/gribouillon/
    vendredi 19 février 2010 17:59
    Modérateur
  • bonjour et merci pour votre réponse.
    Malheureusement j'ai un nouveau petit soucis; j'arrive désormer a afficher les fichiers qui se trouvent dans ma bilbiotheque de documents mais pas les dossiers et je n'arrive pas a comprendre pourquoi...

    //on afficher le nombre et le type des documents qui composent l'onglet
                                     SPListCollection CollList = subSite.Lists;
                                     this.Controls.Add(new LiteralControl("<dd><i>composer de:</i> "));
                                         foreach (SPList oList in CollList)
                                         {
                                             this.Controls.Add(new LiteralControl("<dd><dd><b>"));
                                             this.Controls.Add(new LiteralControl(oList.Title));
                                             this.Controls.Add(new LiteralControl(":</b> "));
                                             this.Controls.Add(new LiteralControl(oList.ItemCount.ToString()));
                                             this.Controls.Add(new LiteralControl(" Document(s)"));
                                             this.Controls.Add(new LiteralControl(" <BR>"));
                                             //on affiche les item pésents dans chaque documents                                         
                                                 if (oList.ItemCount != 0)
                                                 {
                                                     this.Controls.Add(new LiteralControl("<dd><dd><dd><i>Qui sont:</i> "));
                                                     SPListItemCollection CollItem = oList.Items;  
                                                     foreach (SPListItem oItem in CollItem)
                                                     {
                                                          //verification du type de document                                                      
                                                        
                                                         this.Controls.Add(new LiteralControl("<dd><dd><dd><dd>"));
                                                         this.Controls.Add(new LiteralControl(oItem.Name.ToString()));
                                                         this.Controls.Add(new LiteralControl(" <BR>"));
                                                     }
                                                        
                                                 }
    }
    Le probléme est que mon objet oItem ne renvoie que les fichiers et pas les dossiers comment pourrai-je les récupérés?
    (je vais essayer de rajouter un foreach en recréant une collection de type CollList sur l'objet oList , idée qui m'est venue en écrivant ceci ;) )

    lundi 22 février 2010 09:46
  • Les dossiers sont des objets SPFolder. 
    Votre liste a une propriété Folders et RootFolder. 

    Pensez à marquer les messages qui vous ont paru utiles et ceux qui ont répondu à vos questions.

    Sébastien PICAMELOT - http://blogs.developpeur.org/gribouillon/
    lundi 22 février 2010 09:51
    Modérateur
  • Je viens de m'en appercevoir merci beaucoup pour votre réponse ;)
    lundi 22 février 2010 09:58