de la propiedad SPFieldLookup.IsDependentLookup
Obtiene un valor booleano que indica si el campo es un campo de búsqueda secundario que depende de un campo principal para su relación con la lista de búsqueda.
Espacio de nombres: Microsoft.SharePoint
Ensamblado: Microsoft.SharePoint (en Microsoft.SharePoint.dll)
Sintaxis
'Declaración
Public ReadOnly Property IsDependentLookup As Boolean
Get
'Uso
Dim instance As SPFieldLookup
Dim value As Boolean
value = instance.IsDependentLookup
public bool IsDependentLookup { get; }
Valor de propiedad
Tipo: System.Boolean
true si el campo de búsqueda es un campo de búsqueda dependiente; en caso contrario, false.
Comentarios
Cuando esta propiedad devuelve true, el objeto de SPFieldLookup actual representa una columna secundaria en una búsqueda de varias columnas. En este caso, la propiedad del objeto PrimaryFieldId tiene un valor que es la representación de cadena de un GUID que identifica el objeto que representa la columna principal que la columna secundaria depende de su relación con la lista de búsqueda.
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