del método SPFieldLookup.GetDependentLookupInternalNames
Devuelve los nombres internos de todos los campos de búsqueda secundaria que dependen de un campo de búsqueda principal.
Espacio de nombres: Microsoft.SharePoint
Ensamblado: Microsoft.SharePoint (en Microsoft.SharePoint.dll)
Sintaxis
'Declaración
Public Function GetDependentLookupInternalNames As List(Of String)
'Uso
Dim instance As SPFieldLookup
Dim returnValue As List(Of String)
returnValue = instance.GetDependentLookupInternalNames()
public List<string> GetDependentLookupInternalNames()
Valor devuelto
Tipo: System.Collections.Generic.List<String>
Los nombres internos de las búsquedas dependientes como una lista de cadenas. Si no hay ningún campo de búsqueda dependiente, la lista que se devuelve tiene cero elementos (la propiedad Count devuelve 0).
Comentarios
Un objeto SPFieldLookup representa la columna principal de una relación de lista si la propiedad IsRelationship devuelve true. Un objeto SPFieldLookup representa una columna secundaria en una relación de lista si la propiedad IsDependentLookup devuelve true.
Ejemplos
En el siguiente ejemplo es una aplicación de consola que enumera la colección de campos de una lista, busca campos que representan la columna principal de una relación de lista. Para cada columna principal que encuentre la aplicación, se enumeran todas las columnas secundarias que dependen de él.
using System;
using System.Collections.Generic;
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["Addresses"];
foreach (SPField field in list.Fields)
{
SPFieldLookup lookupField = field as SPFieldLookup;
if (lookupField != null && lookupField.IsRelationship)
{
// Print the display name of the field.
Console.WriteLine("\nPrimary column: {0}", lookupField.Title);
// Get any dependent fields.
List<string> internalNames = lookupField.GetDependentLookupInternalNames();
// Convert internal names to display names.
string[] displayNames = new string[internalNames.Count];
if (internalNames.Count == 0)
{
displayNames[0] = "No secondary columns.";
}
else
{
for (int i = 0; i < internalNames.Count; i++)
displayNames[i] = list.Fields.GetFieldByInternalName(internalNames[i]).Title;
// Print the display names.
Console.Write("Secondary columns: ");
Console.WriteLine(string.Join(", ", displayNames));
}
}
}
}
}
Console.Write("\nPress ENTER to continue...");
Console.ReadLine();
}
}
}
Imports System
Imports System.Collections.Generic
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("Addresses")
For Each field As SPField In list.Fields
Dim lookupField As SPFieldLookup = TryCast(field, SPFieldLookup)
If lookupField IsNot Nothing AndAlso lookupField.IsRelationship Then
' Print the display name of the field.
Console.WriteLine(vbLf & "Primary column: {0}", lookupField.Title)
' Get any dependent fields.
Dim internalNames As List(Of String) = lookupField.GetDependentLookupInternalNames()
' Convert internal names to display names.
Dim displayNames As String() = New String(internalNames.Count) {}
If internalNames.Count = 0 Then
displayNames(0) = "No secondary columns."
Else
Dim i As Integer = 0
While i < internalNames.Count
displayNames(i) = list.Fields.GetFieldByInternalName(internalNames(i)).Title
i = i + 1
End While
' Print the display names.
Console.Write("Secondary columns: | ")
Console.WriteLine(String.Join(" | ", displayNames))
End If
End If
Next
End Using
End Using
Console.Write(vbLf & "Press ENTER to continue...")
Console.ReadLine()
End Sub
End Module