Como obter uma lista filtrada por uma View no SharePoint via CSOM

 Como obter os dados do SharePoint via Client Side Object Model com Lists e View no SharePoint 2013

Problemas do CSOM para obter Views no SharePoint 2013
Hoje tive um problema interessante. Tentei obter os dados de uma lista do SharePoint através de uma aplicação desktop via CSOM (Client Side Object Model). Mas não funcionou (do not work!). Simplesmente vieram todos os dados, não executando a filtragem que eu fiz.
Para resolver isto, é necessário dar Load na lista, nas views da lista e nos ítens que serão obtidos.

Além disto, quando for pegar a Query da View, lembre-se de colocar as Tags <View>  e <Query> para funcionar.

O exemplo abaixo mostra como isto funciona.


// Obtem os dados da lista
myList = ....

// Criação da Query
CamlQuery caml = new CamlQuery();
caml.ViewXml = string.Format("<View><Query>{0}</Query></View>", myList.Views[0].ViewQuery),

// Obtenção dos ítens
ListItemCollection allItems = SelectedList.GetItems(caml);
SharePointClientContext.Load(SelectedList);
SharePointClientContext.Load(SelectedList.Views);
SharePointClientContext.Load(allItems);
SharePointClientContext.ExecuteQuery();


Funcionou para você?
Deixe seus comentários.