Share via


Clase SPFieldLookupValue

Contiene el valor de un objeto SPFieldLookup .

Jerarquía de la herencia

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

Espacio de nombres:  Microsoft.SharePoint
Ensamblado:  Microsoft.SharePoint (en Microsoft.SharePoint.dll)

Sintaxis

'Declaración
Public Class SPFieldLookupValue
'Uso
Dim instance As SPFieldLookupValue
public class SPFieldLookupValue

Comentarios

Las instancias de esta clase representan un solo valor de campo para un campo de búsqueda. Campos de búsqueda pueden tener varios valores o sólo uno. Puede determinar que es el caso, compruebe el valor de la propiedad de AllowMultipleValues el campo de búsqueda. Si la propiedad devuelve true, el campo puede tener varios valores; Si devuelve false, no se puede.

Si un campo de búsqueda no permite varios valores, el valor del campo es un objeto del tipo String que contiene el identificador del elemento de la lista a la que señala el campo de búsqueda más el valor del campo en el elemento al que señala el campo de búsqueda. Puede pasar esta cadena como argumento al constructor SPFieldLookupValue(String) para crear un objeto SPFieldLookupValue . A continuación, puede obtener el identificador de elemento de lista de la propiedad LookupId y el valor del campo en el elemento de la lista de la propiedad LookupValue .

Si un campo de búsqueda permite múltiples valores, el valor del campo es un objeto del tipo SPFieldLookupValueCollection que está en la caja como de tipo Object. El objeto SPFieldLookupValueCollection es una colección de objetos SPFieldLookupValue . Puede extraer los valores de campo por enumerar la colección y obtener acceso a la propiedad LookupValue de cada objeto.

Ejemplos

En el ejemplo siguiente se muestra cómo establecer el valor de un campo de búsqueda.

El ejemplo de código es una aplicación de consola que obtiene las referencias a dos listas relacionadas, Customers y Orders. Cada elemento de la lista de clientes representa un registro de cliente, y el campo ID del elemento se utiliza para identificar a un cliente. Cada elemento de la lista de pedidos representa un pedido realizado por un cliente. La lista de pedidos tiene un campo de búsqueda denominado ID de cliente que apunte al campo de identificador en la lista de clientes, identificar al cliente que hizo el pedido.

El código en un bucle de foreach recorre la lista de clientes, agregar un nuevo elemento a la lista de pedidos para cada cliente en la lista de clientes. En cada caso, el código establece el valor del campo de búsqueda, el ID de cliente, vincular el pedido al 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

Seguridad para subprocesos

Los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para subprocesos. No se garantiza que los miembros de instancias sean seguros para los subprocesos.

Vea también

Referencia

Miembros SPFieldLookupValue

Espacio de nombres Microsoft.SharePoint