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


Свойство SPFieldLookup.IsDependentLookup

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

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

Синтаксис

'Декларация
Public ReadOnly Property IsDependentLookup As Boolean
    Get
'Применение
Dim instance As SPFieldLookup
Dim value As Boolean

value = instance.IsDependentLookup
public bool IsDependentLookup { get; }

Значение свойства

Тип: System.Boolean
true Если поле подстановки для зависимого поля подстановки; в противном случае — false.

Замечания

Когда это свойство возвращает true, текущий объект SPFieldLookup представляет дополнительный столбец в несколько столбцов подстановки. В этом случае свойство PrimaryFieldId объекта имеет значение, которое является строковым представлением GUID, который определяет объект, который представляет основной столбец, от которого зависит дополнительный столбец для его связь с список подстановок.

Примеры

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

using System;
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["Complete Orders"];

                    foreach (SPField item in list.Fields)
                    {
                        if (item is SPFieldLookup)
                        {
                            SPFieldLookup field = (SPFieldLookup)item;

                            if (!String.IsNullOrEmpty(field.LookupList) && !String.IsNullOrEmpty(field.LookupField))
                            {
                                // Is this the primary or secondary field for a list relationship? 
                                string strRelationship = field.IsRelationship ? "Primary":"Secondary"; 

                                // Print the display name of the field.
                                Console.WriteLine("\nField: {0} ({1} Field)", field.Title, strRelationship);

                                // Is this a secondary field in a list relationship?
                                if (field.IsDependentLookup)
                                {
                                    SPField primaryField = list.Fields[new Guid(field.PrimaryFieldId)];
                                    Console.WriteLine("Primary Field: {0}", primaryField.Title);
                                }
                            }
                        }
                    }
                }
            }
            Console.Write("\nPress ENTER to continue...");
            Console.ReadLine();
        }
    }
}
Imports System
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("Pending Orders")

                For Each item As SPField In list.Fields
                    If TypeOf item Is SPFieldLookup Then
                        Dim field As SPFieldLookup = DirectCast(item, SPFieldLookup)

                        If Not String.IsNullOrEmpty(field.LookupList) AndAlso Not String.IsNullOrEmpty(field.LookupField) Then
                            ' Is this the primary or secondary field for a list relationship?
                            Dim strRelationship As String = If(field.IsRelationship, "Primary", "Secondary")

                            ' Print the display name of the field.
                            Console.WriteLine(vbLf & "Field: {0} ({1} Field)", field.Title, strRelationship)

                            ' Is this a secondary field in a list relationship?
                            If field.IsDependentLookup Then
                                Dim primaryField As SPField = list.Fields(New Guid(field.PrimaryFieldId))
                                Console.WriteLine("Primary Field: {0}", primaryField.Title)
                            End If
                        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

PrimaryFieldId

IsRelationship

AddDependentLookup(String, Guid)