Ir para o conteúdo principal

TechShare 2010  

Ir para Pesquisa
Home
Eventos
Certificações
Mercado
Modelos
STSADM
Vídeos
Artigos/Tutoriais
Tools/Documentos
  
CanalSharePoint - Maior comunidade de tecnologia SharePoint do Brasil > Artigos e Tutoriais > Tutoriais > Utilizando Campos de Consulta (Lookup) Programaticamente  

Imagem da Barra de Título da Página de Web Parts
Utilizando Campos de Consulta (Lookup) Programaticamente

CS20105 - Utilizando Campos de Consulta (Lookup) Programaticamente
 
Autor: Rodrigo Romano
 
Publicação: 22/09/2009
 
Overview
 
Hoje vou falar um pouco de como utilizar programaticamente aqueles campos de consulta (Lookup).
 
Vale a pena lembrar, que como desenvolvedores do mundo Orientado a Objeto, e seguidores das boas práticas  devemos evitar realizar uma certa atividade utilizando "Hard Codes" e, ao contrário disso, utilizar as classes disponíveis no ObjectModel do sharepoint ao máximo para realizar as nossas tarefas.
 
Mas vocês devem estar se perguntando, porque eu estou falando disso?
 
E a resposta é bem simples, em muitos blogs por aí, vemos as pessoas ensinar como realizar este mesmo procedimento utilizando "Hard Codes" e isso pode trazer vários problemas no futuro.
 
Quem já teve a curiosidade de olhar o valor de um campo de consulta pode notar que ele segue a seguinte forma:
ID;Valor. Correto? Como bons programadores que somos, o primeiro instinto seria dividir esta string em 2 separados pelo ";".
 
Mas isso não funcionaria?
 
Funcionar, funciona. Entretanto, imagine que os desenvolvedores do sharepoint resolvam atualizar esta funcionalidade e depois de uma certa data o valor de um campo de consulta passe a ser retornado diferente do padão atual? Todas as aplicação irão parar de funcionar?
 
Por isso, devemos utilizar as Classes existentes para realizar este procedimento simples, mas não menos importante!
Solução
 
Bo
m, chega de papo! Vamos colocar a mão na massa:

 

Ler Valores

using (SPWeb web = SPControl.GetContextWeb(Context).Site.OpenWeb()) // identifica o site atual
{
    SPList list = web.Lists["Nome da Lista"];  // Lista que contenha algum campo de consulta
    foreach (SPListItem item in list.Items) // iterar entre os items da lista
    {   
       // A linha abaixo é a que faz todo o trabalho =D
        SPFieldLookupValue lookupField = new SPFieldLookupValue(item["NomeCampo"].ToString());
        string lookUpValue = lookupField.LookupValue;
    }
}
 
 
E para atualizar um valor de um campo de consulta, como faço?
 

Atualizar Valores


using (SPWeb web = SPControl.GetContextWeb(Context).Site.OpenWeb()) // identifica o site atual
{
    SPList list = web.Lists["Nome da Lista"];  // Lista que contenha algum campo de consulta
    foreach (SPListItem item in list.Items) // iterar entre os items da lista
    {   
        // Aqui vai um conceito importante, para setar um valor a um campo Lookup você deve passar dois parâmetros:
        // o ID do item, representado como 1 e o Valor realmente do item, representado como "Valor"
        item["Campo"] = new SPFieldLookupValue(1, "Valor");
        item.Update();
    }
}

Conclusão
 
Neste tutorial, demonstramos como ler e atualizar valores de um campo de consulta (Lookup) seguindo as boas práticas, ou seja, utilizando o Object Model do Sharepoint.

Espero que tenham gostado!