Desenvolvimento - Sharepoint - Dev

Manipulando Itens de Lista Programaticamente no SharePoint

Neste tutorial iremos demonstrar como Manipular Itens de Lista Programaticamente no SharePoint.

por Wagner Amorim



Overview

Neste tutorial iremos demonstrar como Manipular Itens de Lista Programaticamente no SharePoint.

Solução

As listas no SharePoint são geralmente utilizadas para armazenar informações dos usuários nos sites, existem vários tipos de lista, quando um site é criado algumas listas pré-definidas são criadas automaticamente, mas não quero me aprofundar no conceito de listas, pois esse não é o foco do Tutorial.

Para maiores informações sobre listas no SharePoint acesse: http://office.microsoft.com/en-us/sharepointtechnology/HA011199881033.aspx?pid=CH011424561033.

É comum a necessidade de manipularmos listas programaticamente no SharePoint. Por esse motivo decidi escrever um tutorial sobre esse assunto, as listas são muito importantes e muito utilizadas nas aplicações SharePoint.

Enfim, vamos ao que interessa, abaixo listo os códigos necessários para Exibir, Editar, Adicionar e Excluir Itens em uma Lista Programaticamente no SharePoint.

Nota: Para execução dos códigos abaixo utilizamos os “namespaces” do SharePoint Microsoft.SharePoint e Microsoft.SharePoint.Utilities.

1. Exibir Itens da Lista

Abaixo vamos apresentar como exibir itens de uma lista específica no SharePoint, de uma forma simples, utilizando critérios de busca.

Com o objetivo de melhorar a performance da query nas listas, iremos utilizar CAML, que é uma linguagem de marcação baseada em XML utilizada no Windows SharePoint Services, para maiores informações de CAML, acesse: http://msdn.microsoft.com/en-us/library/ms426449.aspx.

Veja exemplo abaixo:


using (SPSite meuSite = new SPSite("http://tutorials"))
{
using (SPWeb web = meuSite.OpenWeb())
{
//Acessando a lista "CustomList"
SPList MinhaLista = web.Lists["CustomList"];

//Construindo a Query CAML
SPQuery oQuery = new SPQuery();
oQuery.Query = "<Query><Where><Geq><FieldRef Name="Idade" /><Value Type="Number">20</Value></Geq></Where></Query>";
//Criando uma coleção de itens, utilizando a Query CAML
SPListItemCollection collListItems = MinhaLista.GetItems(oQuery);

foreach (SPListItem oListItem in collListItems)
{
//Exibindo o resultado na tela
Response.Write(SPEncode.HtmlEncode(oListItem["Nome"].ToString()) + " - " + SPEncode.HtmlEncode(oListItem["Idade"].ToString()) + "<BR>");
}
}
}

No exemplo acima utilizei o CAML para filtrar o retorno de uma lista, utilizei uma lista que possuía um campo “Idade” do tipo numérico e meu critério da busca era retornar todos os registros da lista que possuíam esse campo com valor superior a 20.

Nota: Lembrando que o CAML utiliza os “internal names” para realizar suas queries em colunas de lista. Também recomendo que utilizem a ferramenta “CAML Query Builder” para ajudá-los na criação das queries, faça o download em http://www.u2u.be/res/Tools/CamlQueryBuilder.aspx.

Esse foi um exemplo simples de como exibir programaticamente itens de uma lista no SharePoint, é claro que é possível melhorar facilmente esse código.

2. Editar Itens da Lista

Abaixo exploramos como editar itens de lista programaticamente, segue o código:


using (SPSite meuSite = new SPSite("http://tutorials"))
{
using (SPWeb web = meuSite.OpenWeb())
{
//Permitindo atualizações no Banco
web.AllowUnsafeUpdates = true;
//Acessando a lista "CustomList"
SPList MinhaLista = web.Lists["CustomList"];

//Acessando o item da lista pelo ID "1"
SPListItem item = MinhaLista.GetItemById(1);
//Atualizando o campo Idade
item["Idade"] = "25";
//Atualizando o banco
item.Update();
//Restaurando a segurança, bloqueando atualizações "GET" no banco.
web.AllowUnsafeUpdates = false;
}
}

Nesse exemplo, atribuímos uma propriedade (AllowUnsafeUpdates) do objeto SPWeb para “true”, essa propriedade permite atualizações no banco do SharePoint vindo de requisições GET, sem a necessidade de validações de segurança.

Notem que acessamos o item desejado pelo método GetItemById do objeto SPListItem, esse método nos permite acessar um item de lista pelo seu ID, nesse caso utilizei um ID conhecido e estático “1”.

3. Adicionar Itens na Lista

Abaixo exploramos como incluir itens na lista programaticamente, segue o código:


using (SPSite meuSite = new SPSite("http://tutorials"))
{
using (SPWeb web = meuSite.OpenWeb())
{
//Permitindo atualizações no Banco
web.AllowUnsafeUpdates = true;

//Acessando a lista "CustomList"
SPList MinhaLista = web.Lists["CustomList"];
//Adicionando item na lista
SPListItem item = MinhaLista.Items.Add();
item["Nome"] = "Wagner Amorim";
item["Idade"] = 23;
//Atualizando o banco
item.Update();

//Restaurando a segurança, bloqueando atualizações "GET" no banco.
web.AllowUnsafeUpdates = false;
}
}

4. Excluir Itens da Lista

Abaixo exploramos como excluir itens da lista programaticamente, segue o código:


using (SPSite meuSite = new SPSite("http://tutorials"))
{
using (SPWeb web = meuSite.OpenWeb())
{
//Permitindo atualizações no Banco
web.AllowUnsafeUpdates = true;
//Acessando a lista "CustomList"
SPList MinhaLista = web.Lists["CustomList"];

//Acessando o item da lista pelo ID "1"
SPListItem item = MinhaLista.GetItemById(2);
//Excluindo o item atual
item.Delete();

//Restaurando a segurança, bloqueando atualizações "GET" no banco.
web.AllowUnsafeUpdates = false;
}
}

Conclusão

Nesse tutorial nós exploramos de uma forma simples como programaticamente podemos manipular itens de uma lista, espero que tenham gostado. ;).
Wagner Amorim

Wagner Amorim - Consultor com 7 anos de experiência no mercado de TI, já atuou em diversos projetos para médias e grandes empresas. Focado em tecnologias Microsoft, têm se especializado nas Tecnologias SharePoint e Microsoft .NET desde 2003. Membro ativo das comunidades Technet e MSDN voltadas para SharePoint e Líder da maior Comunidade de SharePoint no Brasil (Canal SharePoint).
Possui as certificações MCP: .NET Framework 2.0, MCTS: .NET Framework 2.0 Web Applications, Windows SharePoint Services 3.0: AD, Windows SharePoint Services 3.0: Config., Microsoft Office SharePoint Server 2007: Config., Microsoft Office SharePoint Server 2007: AD e MCPD: Web Developer.
Blog:
http://waamorim.spaces.live.com/