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


Свойство SPFieldLookup.PrimaryFieldId

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

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

Синтаксис

'Декларация
Public Property PrimaryFieldId As String
    Get
    Set
'Применение
Dim instance As SPFieldLookup
Dim value As String

value = instance.PrimaryFieldId

instance.PrimaryFieldId = value
public string PrimaryFieldId { get; set; }

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

Тип: System.String
Если поле является полем получателя при просмотре нескольких столбцов, данное свойство возвращает строковое представление GUID, определяющий первичное поле подстановки; в противном случае возвращает пустую строку.

Исключения

Исключение Условие
SPException

Значение этого свойства нельзя изменить после его установки.

NotSupportedException

Это поле относится к внешнего списка.

Замечания

При создании нескольких столбцов подстановки первичного поля является объект SPFieldLookup , который устанавливает связь с исходного списка. Одно или несколько дополнительных полей зависят от первичного поля для связи в исходный список.

Если текущий объект SPFieldLookupIsDependentLookup свойство возвращает true, то текущий объект является дополнительного поля и его свойство 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

IsDependentLookup

AddDependentLookup(String, Guid)