Problema Aggiornamento dell'articolo di un determinato tipo di contenuto (derivante dalla cartella)

sharepoint.stackexchange https://sharepoint.stackexchange.com//questions/37640

Domanda

Sto incontrando alcuni problemi ad aggiornare alcuni articoli nel mio gestore di eventi.

Ho una libreria documenti in cui ho cartelle, articoli e cartella del tipo di contenuto Pratica, che deriva dalla cartella e ha lo stesso attributo degli altri articoli nell'elenco.

Allora ... Il codice che ho scritto viene invocato da un gestore di eventi e vuoi applicare mod su tutti gli elementi sotto una determinata cartella ..

Funziona per gli articoli (come file come i file ecc.).Quando analizza una sottocartella e trovarlo del tipo di contenuto giusto tenta di modificare la colonna ma non è stato applicato alcun modifica (senza eccezione e debug di ogni istruzione è passata !!)

Qualsiasi suggerimento?

Grazie!

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);            }
   }
.

È stato utile?

Soluzione

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);            } 
.

}

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a sharepoint.stackexchange
scroll top