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.