Compartilhar via


SPFieldCollection.AddLookup method (String, Guid, Boolean)

Cria um campo de pesquisa na coleção de campos de uma lista que aponta para um campo no conjunto de outra lista no mesmo site.

Namespace:  Microsoft.SharePoint
Assembly:  Microsoft.SharePoint (in Microsoft.SharePoint.dll)

Syntax

'Declaração
Public Function AddLookup ( _
    displayName As String, _
    lookupListId As Guid, _
    bRequired As Boolean _
) As String
'Uso
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
)

Parâmetros

  • displayName
    Type: System.String

    Uma seqüência de caracteres que especifica o nome de exibição do campo.

  • lookupListId
    Type: System.Guid

    Um GUID que especifica a lista de destino para o campo de pesquisa.

  • bRequired
    Type: System.Boolean

    true para exigir que o campo contenha valores; Caso contrário, false.

Valor retornado

Type: System.String
Uma seqüência de caracteres que contém o nome interno é usado para o campo. Você pode recuperar o novo campo, passar esse valor para o método GetFieldByInternalName(String) . O campo que é retornado é do tipo SPFieldLookup.

Comentários

Esse método cria um campo do tipo SPFieldLookup na coleção de campo da lista. Um campo de pesquisa em uma lista leva seu valor de um campo em outra lista, a lista de destino especificada no parâmetro lookupListId . Depois de adicionar um campo de pesquisa à coleção, deverá recuperá-lo da coleção e, em seguida, identificar o campo de origem na lista target, definindo a propriedade LookupField .

A lista de destino é a fonte do valor do campo de pesquisa está ciente do campo de pesquisa; ou seja, você pode descobrir o campo de pesquisa, examinando os objetos na coleção retornada pelo método de GetRelatedFields() da lista de destino.

O usuário atual deve ter SPBasePermissions.permissão de ManageLists da lista de destino quando você chamar esse método.

Examples

O exemplo a seguir é um aplicativo de console que obtém a coleção de campos associada à lista de pedidos pendentes e adiciona que um campo de pesquisa chamado identificação do cliente que aponta para o campo ID da lista de clientes. O código então cria um campo secundário depende do campo ID do cliente para sua relação com a lista de clientes.

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

Ver também

Referência

SPFieldCollection class

SPFieldCollection members

AddLookup overload

Microsoft.SharePoint namespace

SPFieldLookup

LookupField

GetFieldByInternalName(String)

AddDependentLookup(String, Guid)

GetRelatedFields()