SPFieldLookupValue-Klasse

Enthält den Wert für ein SPFieldLookup -Objekt.

Vererbungshierarchie

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

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

Syntax

'Declaration
Public Class SPFieldLookupValue
'Usage
Dim instance As SPFieldLookupValue
public class SPFieldLookupValue

Hinweise

Instanzen dieser Klasse stellen einen einzelnen Feldwert für ein Nachschlagefeld. Nachschlagefelder können mehrere Werte oder nur eine haben. Sie können bestimmen, was der Fall ist, indem der Wert der AllowMultipleValues -Eigenschaft für das Nachschlagefeld. Wenn die Eigenschaft truezurückgibt, kann das Feld mehrere Werte aufweisen; Wenn falsezurückgegeben wird, kann es nicht.

Wenn ein Nachschlagefeld nicht mehrere Werte zulässt, ist der Wert des Felds ein Objekt vom Typ String mit der ID des Elements in der Liste, die auf das Nachschlagefeld plus dem Wert des Felds im Element, der verweist auf das Nachschlagefeld zeigt. Sie können diese Zeichenfolge als Argument an den SPFieldLookupValue(String) -Konstruktor zum Erstellen eines SPFieldLookupValue -Objekts übergeben. Anschließend können Sie die Element-ID aus der LookupId -Eigenschaft und dem Wert des Felds in das Listenelement aus der LookupValue -Eigenschaft abrufen.

Wenn ein Nachschlagefeld mehrere Werte zulässt, ist der Wert des Felds ein Objekt des Typs SPFieldLookupValueCollection als Typ Objectmittels Boxing konvertiert wird. Das SPFieldLookupValueCollection -Objekt ist eine Auflistung von SPFieldLookupValue -Objekten. Das Enumerieren der Auflistung und Zugreifen auf die LookupValue -Eigenschaft des Objekts können die Werte extrahiert werden.

Beispiele

Im folgenden Beispiel wird veranschaulicht, wie den Wert eines Nachschlagefelds festgelegt.

Der Beispielcode ist eine Konsolenanwendung, die Verweise auf die zugehörigen Listen, Customers und Orders abruft. Jedes Element in der Liste Debitoren einen Kundendatensatz darstellt und Feld-ID im Element wird verwendet, um einen Kunden zu identifizieren. Jedes Element in der Liste der Bestellungen stellt eine von einem Kunden aufgegebene Bestellung dar. Die Auftragsliste hat ein Nachschlagefeld mit dem Namen Kunden-ID, der das ID-Feld in der Liste Debitoren zeigt die Identifizierung des Kunden, der die Bestellung aufgegeben.

Code in einer foreach -Schleife durchläuft die Liste der Kunden, Hinzufügen eines neuen Elements zu der Liste der Bestellungen für jeden Kunden in der Liste der Kunden. In jedem Fall wird der Code der Wert des Nachschlagefelds, Kunden-ID, den Auftrag an den Kunden zu verknüpfen.

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

Threadsicherheit

Alle öffentlichen static (Shared in Visual Basic) Member dieses Typs sind threadsicher. Die Threadsicherheit von Instanzmembern ist nicht gewährleistet.

Siehe auch

Referenz

SPFieldLookupValue-Member

Microsoft.SharePoint-Namespace