SPFieldLookupValue - Classe

Contient la valeur d'un objet SPFieldLookup .

Hiérarchie d’héritage

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

Espace de noms :  Microsoft.SharePoint
Assembly :  Microsoft.SharePoint (dans Microsoft.SharePoint.dll)

Syntaxe

'Déclaration
Public Class SPFieldLookupValue
'Utilisation
Dim instance As SPFieldLookupValue
public class SPFieldLookupValue

Remarques

Les instances de cette classe représentent une seule valeur de champ pour un champ de recherche. Champs liste de choix peuvent avoir plusieurs valeurs ou une seule. Vous pouvez déterminer qui est le cas en vérifiant la valeur de la propriété AllowMultipleValues de recherche. Si la propriété renvoie true, le champ peut avoir plusieurs valeurs ; Si elle retourne false, c'est impossible.

Si un champ liste de choix n'autorise pas plusieurs valeurs, la valeur du champ est un objet de type String qui contient l'ID de l'élément dans la liste le champ de recherche pointant vers plus la valeur du champ de l'article vers le champ de recherche. Vous pouvez passer cette chaîne comme argument au constructeur SPFieldLookupValue(String) pour créer un objet SPFieldLookupValue . Ensuite, vous pouvez obtenir l'ID d'élément de liste à partir de la propriété LookupId et la valeur du champ dans l'élément de liste à partir de la propriété LookupValue .

Si un champ de recherche autorise plusieurs valeurs, la valeur du champ est un objet de type SPFieldLookupValueCollection qui est boxed en tant que type Object. L'objet SPFieldLookupValueCollection est une collection d'objets SPFieldLookupValue . Vous pouvez extraire les valeurs de champ en énumérant la collection et accéder aux LookupValue propriété de chaque objet.

Exemples

L'exemple suivant montre comment définir la valeur d'un champ liste de choix.

L'exemple de code est une application console qui obtient des références aux deux listes liées, Customers et Orders. Chaque élément de la liste des clients représente un enregistrement de client, et le champ ID de l'élément est utilisé pour identifier un client. Chaque élément de la liste des commandes représente une commande passée par un client. La liste des commandes a un champ de recherche nommé ID client qui pointe vers le champ ID dans la liste des clients, qui identifie le client qui a passé la commande.

Code de la boucle foreach effectue une itération dans la liste des clients, ajouter un nouvel élément à la liste de commandes pour chaque client dans la liste des clients. Dans chaque cas, le code définit la valeur du champ de recherche, le code client pour lier la commande au client.

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

Cohérence de thread

Tous les membres statique (Partagé dans Visual Basic)s publics de ce type sont thread-safe. Cela n’est pas garanti pour les membres d’instance.

Voir aussi

Référence

SPFieldLookupValue - Membres

Microsoft.SharePoint - Espace de noms