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.String

    Chaîne qui spécifie le nom complet du champ.

  • lookupListId
    Type : System.Guid

    Un GUID qui spécifie la liste des cibles pour le champ de recherche.

  • bRequired
    Type : System.Boolean

    true 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

SPFieldCollection classe

SPFieldCollection - Membres

AddLookup - Surcharge

Microsoft.SharePoint - Espace de noms

SPFieldLookup

LookupField

GetFieldByInternalName(String)

AddDependentLookup(String, Guid)

GetRelatedFields()