Compartir a través de


de la propiedad SPFieldLookup.PrimaryFieldId

Obtiene o establece una representación de cadena del GUID que identifica el campo de búsqueda principal si el campo es un campo de búsqueda dependiente.

Espacio de nombres:  Microsoft.SharePoint
Ensamblado:  Microsoft.SharePoint (en Microsoft.SharePoint.dll)

Sintaxis

'Declaración
Public Property PrimaryFieldId As String
    Get
    Set
'Uso
Dim instance As SPFieldLookup
Dim value As String

value = instance.PrimaryFieldId

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

Valor de propiedad

Tipo: System.String
Si el campo es un campo secundario en una búsqueda de varias columna, esta propiedad devuelve la representación de cadena del GUID que identifica el campo de búsqueda principal; de lo contrario, devuelve una cadena vacía.

Excepciones

Excepción Condición
SPException

No puede cambiar el valor de esta propiedad después de que se ha establecido.

NotSupportedException

El campo pertenece a una lista externa.

Comentarios

Cuando se crea una búsqueda de varias columnas, el campo principal es el objeto SPFieldLookup que establece la relación con la lista de origen. Uno o más campos secundarios dependen del campo principal para la relación a la lista de origen.

Si la actual SPFieldLookup propiedad del objeto IsDependentLookup devuelve true, a continuación, el objeto activo es un campo secundario y su propiedad PrimaryFieldId devolverá la representación de cadena del GUID que identifican el campo de búsqueda principal de los que depende.

Ejemplos

En el siguiente ejemplo es una aplicación de consola que examina la colección de campos asociados a una lista, busca objetos SPFieldLookup . Cuando encuentra uno, el código de la aplicación determina si el objeto representa una columna primaria o secundaria. Si el objeto representa una columna secundaria, el código usa el valor devuelto por la propiedad PrimaryFieldId para obtener el nombre para mostrar de la columna principal.

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

Vea también

Referencia

clase SPFieldLookup

Miembros SPFieldLookup

Espacio de nombres Microsoft.SharePoint

IsDependentLookup

AddDependentLookup(String, Guid)