Поделиться через


Метод SPFieldLookup.GetDependentLookupInternalNames

Возвращает внутренние имена всех полей дополнительного поиска, зависящих от является первичным полем подстановки.

Пространство имен:  Microsoft.SharePoint
Сборка:  Microsoft.SharePoint (в Microsoft.SharePoint.dll)

Синтаксис

'Декларация
Public Function GetDependentLookupInternalNames As List(Of String)
'Применение
Dim instance As SPFieldLookup
Dim returnValue As List(Of String)

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

Возвращаемое значение

Тип: System.Collections.Generic.List<String>
Внутренние имена зависимые подстановки, что и список строк. Если не зависимые поля подстановки, возвращаемый список не содержит элементов, (свойство Count возвращает значение 0).

Замечания

Объект SPFieldLookup представляет основной столбец в отношении списка, если свойство IsRelationship возвращает true. Объект SPFieldLookup представляет дополнительный столбец в отношении списка, если свойство IsDependentLookup возвращает true.

Примеры

Следующий пример является консольным приложением, которое перечисляет коллекцию полей списка, поиск поля, представляющие основной столбец в списке отношение. Для каждого основного столбца приложение находит в нем перечислены дополнительные столбцы, которые зависят от нее.

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

См. также

Справочные материалы

SPFieldLookup класс

Элементы SPFieldLookup

Пространство имен Microsoft.SharePoint

IsRelationship

IsDependentLookup