Compartir a través de


(String, Guid, Boolean) del método SPFieldCollection.AddLookup

Crea un campo de búsqueda en la colección de campos de una lista que señala a un campo de la colección de otra lista en el mismo sitio Web.

Espacio de nombres:  Microsoft.SharePoint
Ensamblado:  Microsoft.SharePoint (en Microsoft.SharePoint.dll)

Sintaxis

'Declaración
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
    Tipo: System.String

    Una cadena que especifica el nombre para mostrar del campo.

  • lookupListId
    Tipo: System.Guid

    Un GUID que especifica la lista de objetivo del campo de búsqueda.

  • bRequired
    Tipo: System.Boolean

    true para exigir que el campo contenga valores; en caso contrario, false.

Valor devuelto

Tipo: System.String
Una cadena que contiene el nombre interno que se usa para el campo. Puede recuperar el nuevo campo pasando este valor al método GetFieldByInternalName(String) . El campo que se devuelve es del tipo SPFieldLookup.

Comentarios

Este método crea un campo de tipo SPFieldLookup en la colección de campos de la lista actual. Un campo de búsqueda en una lista toma su valor de un campo de otra lista, la lista de destino especificada en el parámetro lookupListId . Después de agregar un campo de búsqueda a la colección, debe recuperar desde la colección y, a continuación, identifique el campo de origen en la lista destino estableciendo la propiedad LookupField .

La lista de destino que es el origen del valor del campo de búsqueda es consciente del campo de búsqueda; es decir, puede detectar el campo de búsqueda mediante el examen de los objetos de la colección devuelta por el método GetRelatedFields() de la lista de destino.

El usuario actual debe tener SPBasePermissions.permiso de ManageLists en la lista de destino cuando se llama a este método.

Ejemplos

En el siguiente ejemplo es una aplicación de consola que obtiene la colección de campos asociados a la lista de pedidos pendientes y se agrega que un campo de búsqueda denominado ID de cliente que apunta al campo de identificador en la lista de los clientes. El código, a continuación, crea un campo secundario que depende del campo de ID de cliente para su relación con la lista de los 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

Vea también

Referencia

clase SPFieldCollection

Miembros SPFieldCollection

Sobrecarga AddLookup

Espacio de nombres Microsoft.SharePoint

SPFieldLookup

LookupField

GetFieldByInternalName(String)

AddDependentLookup(String, Guid)

GetRelatedFields()