none
arborescence incluant nom des repertoires RRS feed

  • Question

  • Bonjour à vous tous

    Voici la webpart que j'ai écrite pour lister l'ensemble des nouveaux documents presents sur l'ensemble des bibliotheques d'un site. Celle ci fonctionne tres bien a une exception pres :

    si une bibliotheque contient des repertoires et sous repertoires, les nouveuax docs créés à l'interieur de ceux ci n'apparaissent pas dans ma liste des "nouveaux documents".

    Je n'arrive pas à comprendre comment inserer dans mon, code , les lignes avec sp folder ((s'il s'avere que c'est bien cela qu'il faut). Pouvez vous m'éclairer à ce sujet svp... Je bute la dessus depuyis un bout de tps et j'aurais vraiment besoin d'un regard exterieur.

    Merci à l'avance pour votre aide :

    le code :

    using System;
    using System.Runtime.InteropServices;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Xml.Serialization;
    
    using Microsoft.SharePoint;
    using Microsoft.SharePoint.WebControls;
    using Microsoft.SharePoint.WebPartPages;
    
    namespace WebPart_Filtre_NewDoc
    {
      [Guid("64f48e30-8a87-41c6-b68d-642451efa918")]
      public class WebPart1 : System.Web.UI.WebControls.WebParts.WebPart
      {
        Label zoneliste = new Label();
        Label letitre = new Label();
        Label varGen = new Label();
        Label v2 = new Label();
        public int ctrbib = 0;
        public int scantxt;
        public string urlSite;
        public string urlPart1;
        public string urlPart2;
        public string vartest;
        public string varRep;
        public WebPart1()
        {
          this.ExportMode = WebPartExportMode.All;
        }
        protected override void CreateChildControls()
        {
          try
          {
            // definition du contexte SharePoint du site
            SPSite site = SPContext.Current.Site;
            SPWeb web = site.OpenWeb();
            // recup de l'url complete
            urlSite = site.Url.ToString();
            scantxt = urlSite.IndexOf("/", 10);
            // recup debut de l'url - nom serveur + port 
            //urlPart1 = urlSite.Substring(0, scantxt);
    
            base.CreateChildControls();
    
            this.Controls.Add(new LiteralControl("<b>Liste des derniers documents ajoutés ou modifiés :</b><br><br>"));
            // Acces à la liste des bibliotheques du site de type SPBaseType.DocumentLibrary 
            // parcours de chaque BIBLIOTHEQUE
            foreach (SPList nomList in SPContext.Current.Web.Lists)
            {
              varRep = nomList.Folders.Count.ToString();
    
              // recup partie site de l'url
              urlPart2 = nomList.ParentWebUrl;
              vartest = " liste : " + nomList.Title;
    
              // parcours de chaque Vue
              foreach (SPView nomVue in nomList.Views)
              {
                vartest = vartest + " / vue : " + nomVue.Title;
                // si la vue en cours est la vue "NewDoc"
                if (nomVue.Title.ToString() == "NewDoc")
                {
                  // Parcours de tous les items de cette vue
                  // SPListItemCollection collListItems = nomList.GetItems(nomVue);
    
                  // comptage du nb d'item de cette vue
                  var ctrItem = nomList.GetItems(nomVue).Count;
    
                  // s'il y a au moins un document
                  if (ctrItem > 0)
                  {
                    this.Controls.Add(new LiteralControl("<span style='font-weight: bold; color: rgb(255, 0, 0);'>" + ctrItem + "</span> nouveaux documents pour :<b>" + nomList.Title.ToString() + "</b>"));
                    this.Controls.Add(new LiteralControl("<br>"));
    
                    // affichage du lien pour acceder à la vue "NewDoc"
                    HyperLink lien = new HyperLink();
                    lien.Text = "Acces à la liste";
                    lien.NavigateUrl = urlPart1 + urlPart2 + "/" + nomList.Title + "/Forms/" + nomVue.Title + ".aspx".ToString();
    
                    this.Controls.Add(lien);
                    this.Controls.Add(new LiteralControl("<br>"));
    
                  }
                  //ctrItem = 0;
                }
    
              }
            }
          }
          catch (Exception ex)
          {
            //v2.Text = ex.Message;
          }
    
        }
      }
    }
    
    

     

     

     

    lundi 26 juillet 2010 13:20

Réponses

  • Bonjour, 

     

    a ce que j'ai compris vous avez deja creer des vue pour filtrer les nouveau documents. si c'est bien le cas il faut allez modifier la vue et puis dans la page de modification -->noeud Dossiers -> Afficher tous les éléments sans dossiers.

    la vous aurez tous les documents sans dossier. 

     

    cordialement, 

    A.Nemri

      <input name="ContentTypeId" type="hidden" value="0x" />
    • Marqué comme réponse algeox mardi 3 août 2010 11:45
    lundi 2 août 2010 14:28

Toutes les réponses

  • Bonjour, 

     

    a ce que j'ai compris vous avez deja creer des vue pour filtrer les nouveau documents. si c'est bien le cas il faut allez modifier la vue et puis dans la page de modification -->noeud Dossiers -> Afficher tous les éléments sans dossiers.

    la vous aurez tous les documents sans dossier. 

     

    cordialement, 

    A.Nemri

      <input name="ContentTypeId" type="hidden" value="0x" />
    • Marqué comme réponse algeox mardi 3 août 2010 11:45
    lundi 2 août 2010 14:28
  •  

    Bonjour,

     

    Merci ConceptorMe pour la réponse. Algeox, je vous prie de confirmer si cette solution fonctionne pour votre projet.

     

    Cordialement,

    Alex

    ________________

    Publiez un article sur une de ces technologies : Visual Basic, C#, C++, .NET, ASP.NET, SQL Server, Silverlight, SharePoint 2010, SharePoint 2007

    Astuces pour Visual Studio 2010

    XNA – Développement jeux vidéo

    Didacticiels et astuces : VB.NET, C#, ASP.NET, .NET Framework, Silverlight, Workflow Foundation, WPF

    Café des usages

    Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.

     

     

    mardi 3 août 2010 08:31
  • bonjour et merci à ConceptorMe pour votra aide

    Effectivement, en "rusant" ainsi, je contourne le pb mais du coup je vois plus mon arborecence dans l'affichage,ce qui m'arrange qu'à moitié.

    Mais merci qd même pour votre aide

    Cordialement

                                                                                                                                              

    mardi 3 août 2010 11:50
  • Bonjour, 

     

    Effectivement vous perdez votre Arborescence dans le résultat mais vous aurez tous les elements.

     

    cordialement, 

    mardi 3 août 2010 13:07