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.StringUma seqüência de caracteres que especifica o nome de exibição do campo.
lookupListId
Type: System.GuidUm GUID que especifica a lista de destino para o campo de pesquisa.
bRequired
Type: System.Booleantrue 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
Microsoft.SharePoint namespace
GetFieldByInternalName(String)