Freigeben über


SPFieldLookup.PrimaryFieldId-Eigenschaft

Ruft eine Zeichenfolgendarstellung der GUID, die das primäre Nachschlagefeld gibt an, ob das Feld ein abhängiges Nachschlagefeld ist fest.

Namespace:  Microsoft.SharePoint
Assembly:  Microsoft.SharePoint (in Microsoft.SharePoint.dll)

Syntax

'Declaration
Public Property PrimaryFieldId As String
    Get
    Set
'Usage
Dim instance As SPFieldLookup
Dim value As String

value = instance.PrimaryFieldId

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

Eigenschaftswert

Typ: System.String
Wenn das Feld einen sekundären Feld in ein Nachschlagefeld mit mehreren Spalten ist, gibt diese Eigenschaft die Zeichenfolgendarstellung der GUID, die das primäre Nachschlagefeld Bezeichnet; Andernfalls wird eine leere Zeichenfolge zurückgegeben.

Ausnahmen

Ausnahme Bedingung
SPException

Sie können nicht den Wert dieser Eigenschaft ändern, nachdem es festgelegt wurde.

NotSupportedException

Dieses Feld gehört zu einer externen Liste.

Hinweise

Wenn Sie eine Suche für mehrere Spalten erstellen, ist das primäre Feld das SPFieldLookup -Objekt, das mit der Quellliste die Beziehung hergestellt wird. Eine oder mehrere sekundäre Felder hängt das primäre Feld für die Beziehung zu der Liste.

Wenn die aktuellen SPFieldLookup des IsDependentLookup -Objekts, true zurückgibt, und klicken Sie dann das aktuelle Objekt eine sekundäre Feld ist und seine PrimaryFieldId -Eigenschaft gibt der Zeichenfolgendarstellung der GUID zurück, identifiziert das primäre Nachschlagefeld, von dem es abhängig ist.

Beispiele

Im folgende Beispiel ist eine Konsolenanwendung, die Auflistung der Felder mit einer Liste, auf der Suche nach SPFieldLookup Objekte untersucht. Bei einer Auffinden bestimmt Code in der Anwendung, ob das Objekt eine primäre oder sekundäre Spalte darstellt. Wenn das Objekt eine zweite Spalte darstellt, verwendet der Code von der PrimaryFieldId -Eigenschaft zurückgegebenen Wert der Anzeigename der primären Spalte abgerufen.

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

Siehe auch

Referenz

SPFieldLookup Klasse

SPFieldLookup-Member

Microsoft.SharePoint-Namespace

IsDependentLookup

AddDependentLookup(String, Guid)