Question

Je rencontre des problèmes de mise à jour des éléments de mon gestionnaire d'événements.

J'ai une bibliothèque de documents dans laquelle j'ai des dossiers, des éléments et un dossier du type de contenu Pratica, qui dérive du dossier et possède le même attribut des autres éléments de la liste.

Alors ... Le code que j'ai écrit est invoqué par un gestionnaire d'événements et souhaitez appliquer des mods sur tous les éléments sous un certain dossier.

Cela fonctionne pour les articles (comme des fichiers, etc.).Lorsqu'il analysez un sous-dossier et trouvez le type de contenu droit tente de modifier la colonne, mais aucune modification n'a été appliquée (sans exception et débogage toutes les instructions sont passées !!)

Toute suggestion?

Merci!

private void RecursiveUpdateItemCliente(SPFolder folder, string RagioneSociale, Guid fieldRS)
   {
       foreach (SPFile spfile in folder.Files) 
       {
           this.EventFiringEnabled = false;
           spfile.Item[fieldRS] = RagioneSociale;
           spfile.Item.SystemUpdate();
           this.EventFiringEnabled = true;
       }

       foreach (SPFolder spfolder in folder.SubFolders)
       {
           if ((spfolder.Name != "Forms") && (spfolder.Item.ContentTypeId.IsChildOf(new SPContentTypeId(PRATICA))))
           {
               this.EventFiringEnabled = false;
               folder.Item[fieldRS] = RagioneSociale;
               folder.Item.SystemUpdate();
               this.EventFiringEnabled = true;
           }
           RecursiveUpdateItemCliente(spfolder, RagioneSociale, fieldRS);            }
   }

Était-ce utile?

La solution

private void RecursiveUpdateItemCliente(SPFolder folder, string RagioneSociale, Guid fieldRS) 
 { 
     foreach (SPFile spfile in folder.Files)  
   { 
       this.EventFiringEnabled = false; 
       spfile.Item[fieldRS] = RagioneSociale; 
       spfile.Item.SystemUpdate(); 
       this.EventFiringEnabled = true; 
   } 

   foreach (SPFolder spfolder in folder.SubFolders) 
   { 
       if ((spfolder.Name != "Forms") && (spfolder.Item.ContentTypeId.IsChildOf(new SPContentTypeId(PRATICA)))) 
       { 
           //I MUST GET SPFOLDER and NOT folder element...
           this.EventFiringEnabled = false; 
           spfolder.Item[fieldRS] = RagioneSociale; 
           spfolder.Item.SystemUpdate(); 
           this.EventFiringEnabled = true; 
       } 
       RecursiveUpdateItemCliente(spfolder, RagioneSociale, fieldRS);            } 

}

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