Partager via


SPFieldLookup.GetDependentLookupInternalNames - Méthode

Retourne les noms de tous les champs de recherche secondaire qui dépendent d'un champ de recherche principal internes.

Espace de noms :  Microsoft.SharePoint
Assembly :  Microsoft.SharePoint (dans Microsoft.SharePoint.dll)

Syntaxe

'Déclaration
Public Function GetDependentLookupInternalNames As List(Of String)
'Utilisation
Dim instance As SPFieldLookup
Dim returnValue As List(Of String)

returnValue = instance.GetDependentLookupInternalNames()
public List<string> GetDependentLookupInternalNames()

Valeur renvoyée

Type : System.Collections.Generic.List<String>
Le nom interne des recherches dépendants sous la forme d'une liste de chaînes. S'il n'y a aucun champ de recherche dépendant, la liste retournée n'a aucun élément (la propriété Count retourne 0).

Remarques

Un objet SPFieldLookup représente la colonne primaire dans une relation de la liste si la propriété IsRelationship renvoie true. Un objet SPFieldLookup représente une colonne secondaire dans une relation de la liste si la propriété IsDependentLookup renvoie true.

Exemples

L'exemple suivant est une application console qui énumère la collection de champs de la liste, recherchez les champs qui représentent la colonne primaire dans une relation de la liste. Pour chaque colonne principale que l'application trouve, elle répertorie toutes les colonnes secondaires qui en dépendent.

using System;
using System.Collections.Generic;
using Microsoft.SharePoint;

namespace ConsoleApp
{
    class Program
    {
        static void Main(string[] args)
        {
            using (SPSite siteCollection = new SPSite("https://localhost"))
            {
                using (SPWeb site = siteCollection.OpenWeb())
                {
                    SPList list = site.Lists["Addresses"];

                    foreach (SPField field in list.Fields)
                    {
                        SPFieldLookup lookupField = field as SPFieldLookup;
                        if (lookupField != null && lookupField.IsRelationship)
                        {
                            // Print the display name of the field.
                            Console.WriteLine("\nPrimary column: {0}", lookupField.Title);

                            // Get any dependent fields.
                            List<string> internalNames = lookupField.GetDependentLookupInternalNames();

                            // Convert internal names to display names.
                            string[] displayNames = new string[internalNames.Count];
                            if (internalNames.Count == 0)
                            {
                                displayNames[0] = "No secondary columns.";
                            }
                            else
                            {
                                for (int i = 0; i < internalNames.Count; i++)
                                    displayNames[i] = list.Fields.GetFieldByInternalName(internalNames[i]).Title;

                                // Print the display names.
                                Console.Write("Secondary columns: ");
                                Console.WriteLine(string.Join(", ", displayNames));
                            }
                        }
                    }
                }
            }
            Console.Write("\nPress ENTER to continue...");
            Console.ReadLine();
        }
    }
}
Imports System
Imports System.Collections.Generic
Imports Microsoft.SharePoint

Module ConsoleApp

    Sub Main()
        Using siteCollection As New SPSite("https://localhost")
            Using site As SPWeb = siteCollection.OpenWeb()
                Dim list As SPList = site.Lists("Addresses")

                For Each field As SPField In list.Fields
                    Dim lookupField As SPFieldLookup = TryCast(field, SPFieldLookup)
                    If lookupField IsNot Nothing AndAlso lookupField.IsRelationship Then
                        ' Print the display name of the field.
                        Console.WriteLine(vbLf & "Primary column: {0}", lookupField.Title)

                        ' Get any dependent fields.
                        Dim internalNames As List(Of String) = lookupField.GetDependentLookupInternalNames()

                        ' Convert internal names to display names.
                        Dim displayNames As String() = New String(internalNames.Count) {}
                        If internalNames.Count = 0 Then
                            displayNames(0) = "No secondary columns."
                        Else
                            Dim i As Integer = 0
                            While i < internalNames.Count
                                displayNames(i) = list.Fields.GetFieldByInternalName(internalNames(i)).Title
                                i = i + 1
                            End While

                            ' Print the display names.
                            Console.Write("Secondary columns: | ")
                            Console.WriteLine(String.Join(" | ", displayNames))
                        End If
                    End If
                Next
            End Using
        End Using
        Console.Write(vbLf & "Press ENTER to continue...")
        Console.ReadLine()
    End Sub
End Module

Voir aussi

Référence

SPFieldLookup classe

SPFieldLookup - Membres

Microsoft.SharePoint - Espace de noms

IsRelationship

IsDependentLookup