Export (0) Print
Expand All

SPFieldLookup.LookupList property

Gets or sets the string representation of the GUID that identifies the list that is the source of this field's value.

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

'Declaration
PublicPropertyLookupListAsStringGetSet
'Usage
DiminstanceAsSPFieldLookupDimvalueAsStringvalue = instance.LookupList

instance.LookupList = value

Property value

Type: System.String
The string representation of the GUID that identifies the list that is the source of information for the field. An empty string is returned if the field does not point to a list.

ExceptionCondition
SPException

The property has already been set. You cannot change the lookup list after the LookupList property is set.

This property returns the string representation of the source list's ID property. The LookupList property is set automatically when you create an SPFieldLookup object by calling the AddLookup or AddDependentLookup method of the SPFieldCollection object that represents the field collection for the list where you want to add the lookup column.

Important noteImportant

Once a lookup column is established, the target list cannot be changed.

The following example is a console application that enumerates the fields associated with a list, looking for fields of type SPFieldLookup. When it finds a field of that type, the application uses the value of the LookupList property to get a reference to the list that the lookup field points to and then the value of the LookupField property to get the field in the target list that the lookup field points to.

Imports System
Imports Microsoft.SharePoint

Module ConsoleApp

    Sub Main()
        Using siteCollection As New SPSite("http://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

                            ' Get the site where the target list is located.
                            Using targetSite As SPWeb = siteCollection.AllWebs(field.LookupWebId)
                                ' Get the name of the list where this field gets information.
                                Dim targetList As SPList = targetSite.Lists(New Guid(field.LookupList))
                                Console.WriteLine("Related list: {0}", targetList.Title)

                                ' Get the name of the field where this field gets information.
                                Dim targetField As SPField = targetList.Fields.GetFieldByInternalName(field.LookupField)
                                Console.WriteLine("Related field: {0}", targetField.Title)
                            End Using
                        End If
                    End If
                Next
            End Using
        End Using
        Console.Write(vbLf & "Press ENTER to continue...")
        Console.ReadLine()
    End Sub
End Module
Show:
© 2014 Microsoft