Класс 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) этого типа являются потокобезопасными. Не гарантируется, что любые элементы экземпляров потокобезопасны.