Метод SPFieldCollection.AddLookup (String, Guid, Boolean)
Создает поле подстановок в коллекции полей для одного списка, указывающего поля в коллекции для другой список того же веб-сайта.
Пространство имен: Microsoft.SharePoint
Сборка: Microsoft.SharePoint (в Microsoft.SharePoint.dll)
Синтаксис
'Декларация
Public Function AddLookup ( _
displayName As String, _
lookupListId As Guid, _
bRequired As Boolean _
) As String
'Применение
Dim instance As SPFieldCollection
Dim displayName As String
Dim lookupListId As Guid
Dim bRequired As Boolean
Dim returnValue As String
returnValue = instance.AddLookup(displayName, _
lookupListId, bRequired)
public string AddLookup(
string displayName,
Guid lookupListId,
bool bRequired
)
Параметры
displayName
Тип: System.StringСтрока, указывающая отображаемое имя поля.
lookupListId
Тип: System.GuidGUID, который определяет целевой список для поля подстановок.
bRequired
Тип: System.Booleantrue требует, что поле содержит значения; в противном случае — false.
Возвращаемое значение
Тип: System.String
Строка, содержащая внутреннее имя, которое используется для данного поля. Новое поле можно получить, передав это значение в метод GetFieldByInternalName(String) . Поле, которое возвращается имеет тип SPFieldLookup.
Замечания
Этот метод создает поле типа SPFieldLookup в коллекцию текущего списка полей. Поле подстановок в один список получает значение из поля в другом списке целевого списка, указанного в параметре lookupListId . После добавления поля подстановок в коллекции, следует извлечь их из коллекции и затем определить поле источника в целевой список с помощью свойства LookupField .
Известно целевой список, который является источником значения поля подстановки для поля подстановки; поле подстановки, можно обнаружить, анализ объектов в коллекции, возвращаемой методом GetRelatedFields() в целевой список.
Текущий пользователь должен иметь SPBasePermissions.ManageLists разрешение на целевой список, при вызове этого метода.
Примеры
Следующий пример является консольным приложением, которое возвращает коллекцию полей, связанных со списком ожидающие заказы и добавляет поля подстановок с именем 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 sourceList = site.Lists["Customers"];
SPList dependentList = site.Lists["Pending Orders"];
string strPrimaryCol = dependentList.Fields.AddLookup("Customer ID", sourceList.ID, true);
SPFieldLookup primaryCol = (SPFieldLookup)dependentList.Fields.GetFieldByInternalName(strPrimaryCol);
primaryCol.LookupField = sourceList.Fields["ID"].InternalName;
primaryCol.Indexed = true;
primaryCol.RelationshipDeleteBehavior = SPRelationshipDeleteBehavior.Restrict;
primaryCol.Update();
string strSecondaryCol = dependentList.Fields.AddDependentLookup("Last Name", primaryCol.Id);
SPFieldLookup secondaryCol = (SPFieldLookup)dependentList.Fields.GetFieldByInternalName(strSecondaryCol);
secondaryCol.LookupField = sourceList.Fields["Last Name"].InternalName;
secondaryCol.Update();
}
}
Console.Write("\nPress ENTER to continue...");
Console.ReadLine();
}
}
}
Imports System
Imports Microsoft.SharePoint
Namespace RelatedLists
Class Program
Shared Sub Main(ByVal args As String())
Using siteCollection As New SPSite("https://localhost")
Using site As SPWeb = siteCollection.OpenWeb()
Dim sourceList As SPList = site.Lists("Customers")
Dim dependentList As SPList = site.Lists("Pending Orders")
Dim strPrimaryCol As String = dependentList.Fields.AddLookup("Customer ID", sourceList.ID, True)
Dim primaryCol As SPFieldLookup = DirectCast(dependentList.Fields.GetFieldByInternalName(strPrimaryCol), SPFieldLookup)
primaryCol.LookupField = sourceList.Fields("ID").InternalName
primaryCol.Indexed = True
primaryCol.RelationshipDeleteBehavior = SPRelationshipDeleteBehavior.Restrict
primaryCol.Update()
Dim strSecondaryCol As String = dependentList.Fields.AddDependentLookup("Last Name", primaryCol.Id)
Dim secondaryCol As SPFieldLookup = DirectCast(dependentList.Fields.GetFieldByInternalName(strSecondaryCol), SPFieldLookup)
secondaryCol.LookupField = sourceList.Fields("Last Name").InternalName
secondaryCol.Update()
End Using
End Using
Console.Write(vbLf & "Press ENTER to continue...")
Console.ReadLine()
End Sub
End Class
End Namespace
См. также
Справочные материалы
Пространство имен Microsoft.SharePoint
GetFieldByInternalName(String)