Поделиться через


Метод 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.Guid

    GUID, который определяет целевой список для поля подстановок.

  • bRequired
    Тип: System.Boolean

    true требует, что поле содержит значения; в противном случае — 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

См. также

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

SPFieldCollection класс

Элементы SPFieldCollection

Перегрузка AddLookup

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

SPFieldLookup

LookupField

GetFieldByInternalName(String)

AddDependentLookup(String, Guid)

GetRelatedFields()