(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.StringUna cadena que especifica el nombre para mostrar del campo.
lookupListId
Tipo: System.GuidUn GUID que especifica la lista de objetivo del campo de búsqueda.
bRequired
Tipo: System.Booleantrue 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
Espacio de nombres Microsoft.SharePoint
GetFieldByInternalName(String)