Свойство SPFieldLookup.LookupField
Получает или задает внутреннее имя поля в связанный список, который является источником значения данного поля.
Пространство имен: Microsoft.SharePoint
Сборка: Microsoft.SharePoint (в Microsoft.SharePoint.dll)
Синтаксис
'Декларация
Public Property LookupField As String
Get
Set
'Применение
Dim instance As SPFieldLookup
Dim value As String
value = instance.LookupField
instance.LookupField = value
public string LookupField { get; set; }
Значение свойства
Тип: System.String
Строка, содержащая внутреннее имя поля.
Замечания
После добавления поля подстановки коллекции списка путем вызова метода AddLookup можно извлечь поле подстановки из коллекции и определить исходное поле в конечном списке свойства LookupField . При установке свойства LookupField необходимо вызвать метод Update , чтобы изменения вступили в силу в базе данных.
Целью свойства LookupField должен быть один из следующих типов полей:
SPFieldType.Counter
SPFieldType.DateTime
SPFieldType.Number
SPFieldType.Text
Кроме того SPFieldType.Computed может использоваться как целевой объект, если включены просмотров. Свойство EnableLookup класса SPFieldComputed получения дополнительных сведений см. Тип поля SPFieldType.Calculated может быть целевой объект, если выходные данные — это текст. Свойство OutputType класса SPFieldCalculated получения дополнительных сведений см.
Примеры
В следующем примере показано консольное приложение, которое создает отношение между списками Customers (Клиенты) и Pending Orders (Отложенные заказы). Приложение вызывает метод AddLookup, чтобы добавить поле подстановки Customer ID (ИД клиента) в список Pending Orders (Отложенные заказы), и указывает поле ID (ИД) в списке Customers (Клиенты). Новое поле Customer ID (ИД клиента) является индексированным и для него заданы ограничения на удаление из списка подстановки.
using System;
using Microsoft.SharePoint;
namespace RelatedLists
{
class Program
{
static void Main(string[] args)
{
using (SPSite siteCollection = new SPSite("https://localhost"))
{
using (SPWeb site = siteCollection.OpenWeb())
{
SPList lookupList = site.Lists.TryGetList("Customers");
SPList relatedList = site.Lists.TryGetList("Pending Orders");
if (lookupList != null && relatedList != null)
{
string strPrimaryCol = relatedList.Fields.AddLookup("Customer ID", lookupList.ID, true);
SPFieldLookup primaryCol = (SPFieldLookup)relatedList.Fields.GetFieldByInternalName(strPrimaryCol);
primaryCol.LookupField = lookupList.Fields["ID"].InternalName;
primaryCol.Indexed = true;
primaryCol.RelationshipDeleteBehavior = SPRelationshipDeleteBehavior.Restrict;
primaryCol.Update();
}
}
}
Console.Write("\nPress ENTER to continue...");
Console.ReadLine();
}
}
}
Imports System
Imports Microsoft.SharePoint
Module ConsoleApp
Sub Main()
Using siteCollection As New SPSite("https://localhost")
Using site As SPWeb = siteCollection.OpenWeb()
Dim lookupList As SPList = site.Lists.TryGetList("Customers")
Dim relatedList As SPList = site.Lists.TryGetList("Pending Orders")
If lookupList IsNot Nothing AndAlso relatedList IsNot Nothing Then
Dim strPrimaryCol As String = relatedList.Fields.AddLookup("Customer ID", lookupList.ID, True)
Dim primaryCol As SPFieldLookup = _
DirectCast(relatedList.Fields.GetFieldByInternalName(strPrimaryCol), SPFieldLookup)
primaryCol.LookupField = lookupList.Fields("ID").InternalName
primaryCol.Indexed = True
primaryCol.RelationshipDeleteBehavior = SPRelationshipDeleteBehavior.Restrict
primaryCol.Update()
End If
End Using
End Using
Console.Write(vbLf & "Press ENTER to continue...")
Console.ReadLine()
End Sub
End Module