SPFieldCollection.AddLookup - Méthode (String, Guid, Boolean)
Crée un champ de recherche dans la collection de champs pour une liste qui pointe vers un champ dans la collection à une autre liste dans le même site Web.
Espace de noms : Microsoft.SharePoint
Assembly : Microsoft.SharePoint (dans Microsoft.SharePoint.dll)
Syntaxe
'Déclaration
Public Function AddLookup ( _
displayName As String, _
lookupListId As Guid, _
bRequired As Boolean _
) As String
'Utilisation
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
)
Paramètres
displayName
Type : System.StringChaîne qui spécifie le nom complet du champ.
lookupListId
Type : System.GuidUn GUID qui spécifie la liste des cibles pour le champ de recherche.
bRequired
Type : System.Booleantrue pour exiger que le champ contienne des valeurs ; dans le cas contraire, false.
Valeur renvoyée
Type : System.String
Chaîne qui contient le nom interne est utilisé pour le champ. Vous pouvez récupérer le nouveau champ en passant cette valeur à la méthode GetFieldByInternalName(String) . Le champ qui est retourné est de type SPFieldLookup.
Remarques
Cette méthode crée un champ de type SPFieldLookup dans la collection de champs de la liste en cours. Un champ liste de choix dans une liste prend sa valeur d'un champ dans une autre liste, la liste des cibles spécifiées dans le paramètre lookupListId . Après avoir ajouté un champ liste de choix à la collection, vous devez récupérer à partir de la collection, puis identifiez le champ source dans la liste cible en définissant la propriété LookupField .
La liste des cibles qui est la source de la valeur du champ liste de choix est conscient du champ liste de choix ; Autrement dit, vous pouvez découvrir le champ liste de choix en examinant les objets dans la collection retournée par la méthode de GetRelatedFields() de la liste cible.
L'utilisateur actuel doit disposer de SPBasePermissions.autorisation de ManageLists sur la liste cible lorsque vous appelez cette méthode.
Exemples
L'exemple suivant est une application console qui obtient la collection des champs associés à la liste des commandes en attente et ajoute qu'un champ de recherche nommé code client qui pointe vers le champ ID dans la liste des clients. Le code crée ensuite un champ secondaire dépend du champ code client de sa relation à la liste des clients.
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
Voir aussi
Référence
Microsoft.SharePoint - Espace de noms
GetFieldByInternalName(String)