Compartilhar via


SPFieldLookupValue class

Contém o valor de um objeto SPFieldLookup .

Inheritance hierarchy

System.Object
  Microsoft.SharePoint.SPFieldLookupValue
    Microsoft.SharePoint.SPFieldUserValue

Namespace:  Microsoft.SharePoint
Assembly:  Microsoft.SharePoint (in Microsoft.SharePoint.dll)

Syntax

'Declaração
Public Class SPFieldLookupValue
'Uso
Dim instance As SPFieldLookupValue
public class SPFieldLookupValue

Comentários

As ocorrências dessa classe representam um único valor de campo para um campo de pesquisa. Campos de pesquisa podem ter vários valores ou apenas uma. Você pode determinar o que é o caso, verificando o valor da propriedade de AllowMultipleValues do campo de pesquisa. Se a propriedade retornar true, o campo pode ter vários valores. Se ele retornar false, ele não pode.

Se um campo de pesquisa não permitir vários valores, o valor do campo é um objeto do tipo String que contém a ID do item na lista que o campo pesquisa aponta para mais o valor do campo no item indicado pelo campo de pesquisa. Você pode passar essa seqüência como um argumento para o construtor de SPFieldLookupValue(String) para criar um objeto SPFieldLookupValue . Em seguida, você pode obter a ID do item de lista a propriedade LookupId e o valor do campo no item da lista da propriedade LookupValue .

Se um campo de pesquisa permite que vários valores, o valor do campo é um objeto do tipo SPFieldLookupValueCollection in a box como do tipo Object. O objeto SPFieldLookupValueCollection é uma coleção de objetos SPFieldLookupValue . Você pode extrair os valores de campo enumerando a coleção e acessando a propriedade de LookupValue de cada objeto.

Examples

O exemplo a seguir demonstra como definir o valor de um campo de pesquisa.

O exemplo de código é um aplicativo de console que obtém referências a duas listas relacionadas, clientes e pedidos. Cada item da lista de clientes representa um registro de cliente, e o campo ID do item é usado para identificar um cliente. Cada item na lista de ordens representa um pedido feito por um cliente. Lista de ordens possui um campo de pesquisa chamado ID do cliente que aponta para o campo ID da lista de clientes, identificação do cliente que fez o pedido.

Código em um loop de foreach percorre a lista de clientes, adicionar um novo item à lista de pedidos para cada cliente na lista de clientes. Em cada caso, o código define o valor do campo de pesquisa, o ID de cliente, para vincular a ordem para o cliente.

using System;
using Microsoft.SharePoint;

namespace ConsoleApp
{
    class Program
    {
        static void Main(string[] args)
        {
            using (SPSite site = new SPSite("https://localhost"))
            {
                using (SPWeb web = site.RootWeb)
                {
                    SPList customerList = web.Lists.TryGetList("Contoso Customers");
                    SPList orderList = web.Lists.TryGetList("Contoso Orders");

                    if (customerList != null && orderList != null)
                    {
                        SPListItemCollection customers = customerList.Items;
                        SPListItemCollection orders = orderList.Items;

                        string fieldName = "CustIDLookup";
                        if (!orderList.Fields.ContainsField(fieldName))
                            return;
                        
                        SPField lookupFld = orderList.Fields.GetField(fieldName);

                        foreach (SPListItem customer in customers)
                        {
                            SPListItem order = orders.Add();
                            order[SPBuiltInFieldId.Title] = "Thank you!";
                            order.Update();

                            SPFieldLookupValue value = new SPFieldLookupValue(customer.ID, customer.ID.ToString());
                            order[lookupFld.Id] = value.ToString();
                            order.Update();
                        }
                    }
                }
            }
        }
    }
}
Imports System
Imports Microsoft.SharePoint

Module ConsoleApp

    Sub Main()
        Using site As New SPSite("https://localhost")
            Using web As SPWeb = site.OpenWeb()

                Dim customerList As SPList = web.Lists.TryGetList("Contoso Customers")
                Dim orderList As SPList = web.Lists.TryGetList("Contoso Orders")

                If customerList IsNot Nothing AndAlso orderList IsNot Nothing Then
                    Dim customers As SPListItemCollection = customerList.Items
                    Dim orders As SPListItemCollection = orderList.Items

                    Dim fieldName As String = "CustIDLookup"
                    If Not orderList.Fields.ContainsField(fieldName) Then
                        Return
                    End If

                    Dim lookupFld As SPField = orderList.Fields.GetField(fieldName)

                    For Each customer As SPListItem In customers
                        Dim order As SPListItem = orders.Add()
                        order(SPBuiltInFieldId.Title) = "Thank you!"
                        order.Update()

                        Dim value As New SPFieldLookupValue(customer.ID, customer.ID.ToString())
                        order(lookupFld.Id) = value.ToString()
                        order.Update()
                    Next
                End If

            End Using
        End Using
    End Sub
End Module

Thread safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Ver também

Referência

SPFieldLookupValue members

Microsoft.SharePoint namespace