Класс SPFieldLookupValue

Содержит значения для объекта SPFieldLookup .

Иерархия наследования

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

Пространство имен:  Microsoft.SharePoint
Сборка:  Microsoft.SharePoint (в Microsoft.SharePoint.dll)

Синтаксис

'Декларация
Public Class SPFieldLookupValue
'Применение
Dim instance As SPFieldLookupValue
public class SPFieldLookupValue

Замечания

Экземпляры этого класса представляют собой значения одного поля для поля подстановок. Поля подстановок может иметь несколько значений или только один. Можно определить, что происходит путем проверки значения свойства AllowMultipleValues поле подстановки. Если свойство возвращает true, поле может иметь несколько значений; Если он возвращает false, невозможно.

Если в поле подстановок не допускает несколько значений, значение поля — объект типа String , содержащий идентификатор элемента списка, указывающий плюс значение поля в элемент, указывающий поля подстановки поле подстановки. Эта строка можно передать в качестве аргумента в конструктор SPFieldLookupValue(String) для создания объекта SPFieldLookupValue . Затем идентификатор элемента списка можно получить из свойства LookupId и значение поля в элементе списка из свойства LookupValue .

Если в поле подстановок допускает несколько значений, значение поля — объект типа SPFieldLookupValueCollection , который будет трактоваться как тип Object. Объект SPFieldLookupValueCollection представляет собой коллекцию объектов SPFieldLookupValue . Вы можете извлечь значения полей, перечисление коллекции и свойства каждого объекта LookupValue .

Примеры

Следующий пример демонстрирует значение поля подстановок.

Пример кода является консольным приложением, которое получает ссылки на два связанных списков клиентов и заказы. Каждый элемент в списке клиентов представляет запись клиента и идентификатор поля в элемент используется для идентификации клиента. Каждый элемент в списке заказов представляет заказа, сделанного клиентом. Список заказов с поля подстановок с именем код клиента, который указывает на идентификатор поля в списке клиентов идентификации клиента, который разместил заказ.

Код в цикле foreach перебирает список клиентов, Добавление нового элемента в список заказов для каждого клиента из списка клиентов. В каждом случае код задает значение для поля подстановки, идентификатор заказчика, для связи с клиентом заказа.

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

Потокобезопасность

Любые общедоступные элементы static (Shared в Visual Basic) этого типа являются потокобезопасными. Не гарантируется, что любые элементы экземпляров потокобезопасны.

См. также

Справочные материалы

Элементы SPFieldLookupValue

Пространство имен Microsoft.SharePoint