Como Usar o Controle SharePoint MultipleLookupField: Um Guia Passo a Passo

Ao trabalhar com o SharePoint, você pode se deparar com cenários em que precisa associar vários itens de uma lista a um item em outra lista. Um controle útil para alcançar isso é o MultipleLookupField. Neste post, vamos guiá-lo através do uso do controle MultipleLookupField passo a passo, garantindo que você entenda como exibir e gerenciar vários valores de pesquisa dentro de suas web parts.

O Problema: Conectando Duas Listas

O principal desafio é integrar o controle MultipleLookupField em uma página da web que seja executada no contexto do SharePoint. Você pode querer vincular duas coleções de campos do SharePoint, como tarefas e documentos. Isso requer alguma configuração básica, além de entender como manipular o controle de forma eficaz.

Começando com o MultipleLookupField

Passo 1: Crie Seu Ambiente SharePoint

  1. Configurar um Site de Equipe: Comece criando um novo site de equipe dentro do SharePoint.
  2. Adicionar Tarefas: Vá para a lista de Tarefas e crie algumas tarefas.
  3. Criar um Documento: Carregue um documento na biblioteca de Documentos Compartilhados.
  4. Criar uma Coluna de Pesquisa:
    • Na biblioteca de Documentos Compartilhados, crie uma nova coluna chamada “Relacionado”.
    • Defina esta coluna como um campo de Pesquisa que faz referência ao campo “Título” da lista de Tarefas.
    • Certifique-se de permitir múltiplos valores para esta coluna.

Passo 2: Criando a Web Part

Para começar a utilizar o MultipleLookupField, você precisa criar uma web part. Aqui está um exemplo simplificado para orientá-lo nesse processo.

Estrutura Básica da Sua Web Part

Label l;
MultipleLookupField mlf;

protected override void CreateChildControls()
{
    base.CreateChildControls();
    SPList list = SPContext.Current.Web.Lists["Shared Documents"];
    if (list != null && list.Items.Count > 0)
    {
        LiteralControl lit = new LiteralControl("Associe tarefas a " + list.Items[0].Name);
        this.Controls.Add(lit);

        mlf = new MultipleLookupField();
        mlf.ControlMode = SPControlMode.Edit;
        mlf.FieldName = "Relacionado";
        mlf.ItemId = list.Items[0].ID;
        mlf.ListId = list.ID;
        mlf.ID = "Relacionado";
        this.Controls.Add(mlf);

        Button b = new Button();
        b.Text = "Alterar";
        b.Click += new EventHandler(bClick);
        this.Controls.Add(b);

        l = new Label();
        this.Controls.Add(l);
    }
}

void bClick(object sender, EventArgs e)
{
    l.Text = "";
    foreach (SPFieldLookupValue val in (SPFieldLookupValueCollection)mlf.Value)
    {
        l.Text += val.LookupValue.ToString() + " ";
    }

    SPListItem listitem = mlf.List.Items[0];
    listitem["Relacionado"] = mlf.Value;
    listitem.Update();
    mlf.Value = listitem["Relacionado"];
}

protected override void OnInit(EventArgs e)
{
    base.OnInit(e);
    EnsureChildControls();
}

Passo 3: Implantando Sua Web Part

  1. Compilar e Implantar: Compile seu código e implemente a web part em seu ambiente SharePoint.
  2. Adicionar a Web Part ao Seu Site: Navegue até a página inicial do seu site de equipe e adicione uma instância da sua nova web part.

Entendendo o Manipulador de Click

O manipulador de evento de clique bClick é crucial para atualizar a interface do usuário.

  • Recuperando Valores: Ele começa recuperando todos os valores selecionados do MultipleLookupField e os exibindo.
  • Atualizando o Item da Lista: Ele atualiza o campo “Relacionado” na lista de documentos com as tarefas selecionadas, garantindo a sincronização entre a interface do usuário e o item da lista.

Notas Adicionais

  • O exemplo fornecido é bastante básico: é importante notar que ele carece de um tratamento de erros abrangente e não é destinado para uso em produção. Considere estendê-lo para melhor usabilidade.
  • Você pode descobrir que, se comentar a linha mlf.Value = listitem["Relacionado"];, a interface do usuário pode não ser sincronizada corretamente com os dados subjacentes, tornando essa linha necessária para a funcionalidade adequada.

Conclusão

Seguindo os passos descritos acima, você pode integrar com sucesso o controle MultipleLookupField em seu site SharePoint. Isso permite a gestão eficiente de itens relacionados de diferentes listas, aprimorando sua experiência geral no SharePoint. Com um pouco de prática e refinamento, você pode transformar esses princípios básicos em soluções poderosas adaptadas às suas necessidades específicas.

Sinta-se à vontade para entrar em contato com quaisquer perguntas ou compartilhe suas experiências usando o controle MultipleLookupField no SharePoint!