Метод SPFieldLookup.GetDependentLookupInternalNames
Возвращает внутренние имена всех полей дополнительного поиска, зависящих от является первичным полем подстановки.
Пространство имен: Microsoft.SharePoint
Сборка: Microsoft.SharePoint (в Microsoft.SharePoint.dll)
Синтаксис
'Декларация
Public Function GetDependentLookupInternalNames As List(Of String)
'Применение
Dim instance As SPFieldLookup
Dim returnValue As List(Of String)
returnValue = instance.GetDependentLookupInternalNames()
public List<string> GetDependentLookupInternalNames()
Возвращаемое значение
Тип: System.Collections.Generic.List<String>
Внутренние имена зависимые подстановки, что и список строк. Если не зависимые поля подстановки, возвращаемый список не содержит элементов, (свойство Count возвращает значение 0).
Замечания
Объект SPFieldLookup представляет основной столбец в отношении списка, если свойство IsRelationship возвращает true. Объект SPFieldLookup представляет дополнительный столбец в отношении списка, если свойство IsDependentLookup возвращает true.
Примеры
Следующий пример является консольным приложением, которое перечисляет коллекцию полей списка, поиск поля, представляющие основной столбец в списке отношение. Для каждого основного столбца приложение находит в нем перечислены дополнительные столбцы, которые зависят от нее.
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