Domanda

In un'applicazione sto lavorando, sto interagendo con SharePoint (2010) tramite il modello di oggetto .NET client-laterale client e sto cercando di tenere conto di un numero elevato di possibili configurazioni di librerie di documenti. Nell'istanza che una libreria documenti ha abilitato l'approvazione dei contenuti, se creo un nuovo oggetto Folder, lo stato di approvazione si applica anche a questo ListItem:

Come posso ottenere un riferimento al ListItem che è l'oggetto Folder di nuova creato?

Ho bisogno di impostare questo valore su SPModerationStatusType.Approved programmaticamente quando creo una nuova cartella, ma non riesco a trovare un modo per modificare i campi del ListItem dato che ho solo un oggetto Folder.

Voglio ottenere un oggetto ListItem in modo da poter fare qualcosa del genere:

Lavorando con approvazione / moderazione del contenuto in csom < / P >.

Modifica:

Per SharePoint 2013, hanno apparentemente preso in considerazione questo e hanno aggiunto un Folder.ListItemAllFields proprietà che sarebbero esattamente ciò di cui ho bisogno qui, ma questa proprietà non è disponibile per il CSOM 2010.

È stato utile?

Soluzione

I solved this by using a CamlQuery directly after creation to return folders with the same name as a ListItemCollection:

SP.CamlQuery query = new SP.CamlQuery();
query.ViewXml = "<View Scope='RecursiveAll'>" +
                  "<Query>" +
                    "<Where>" +
                      "<And>" +
                        "<Eq>" +
                          "<FieldRef Name='ContentType'/>" +
                          "<Value Type='Text'>Folder</Value>" +
                        "</Eq>" +
                        "<Eq>" +
                          "<FieldRef Name='FileLeafRef'/>" +
                          "<Value Type='Text'>" + subFolderName + "</Value>" +
                        "</Eq>" +
                      "</And>" +
                    "</Where>" +
                  "</Query>" +
                "</View>";

SP.ListItemCollection items = list.GetItems(query);
clientContext.Load(items);
clientContext.ExecuteQuery();

With a little validation of the item I can set the property as I need.

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