giovedì 28 aprile 2011

Creare Folder con un custom Content Type tramite event receiver

Ho trovato in internet che per creare via codice dei folder in una document library, con un content type custom che eredita da folder si deve usare il codice seguente:

SPWeb currentSite = (SPWeb)properties.Feature.Parent;
SPFolderCollection documentLibrary = currentSite.Lists["My Document Library"].RootFolder.SubFolders;
SPFolder folder = documentLibrary.Add("My Folder Name");
// set the content type id and update it, so that the proper attributes are present
folder.Item["ContentTypeId"] = "0x012000521AACBC415A498390B668D81308E454";
folder.Update();

Ma devo segnalare che questo codice non funziona, per generare un folder con assegnato correttamente il content type bisogna utilizzare un SystemUpdate al posto di un Update.

folder.Item.SystemUpdate();