de la propiedad SPFieldLookup.LookupWebId
Obtiene o establece el identificador del sitio web que contiene la lista que es el origen del valor de este campo.
Espacio de nombres: Microsoft.SharePoint
Ensamblado: Microsoft.SharePoint (en Microsoft.SharePoint.dll)
Sintaxis
'Declaración
Public Property LookupWebId As Guid
Get
Set
'Uso
Dim instance As SPFieldLookup
Dim value As Guid
value = instance.LookupWebId
instance.LookupWebId = value
public Guid LookupWebId { get; set; }
Valor de propiedad
Tipo: System.Guid
El valor de la propiedad ID para el sitio Web.
Excepciones
Excepción | Condición |
---|---|
NotSupportedException | La lista a la que pertenece el campo es una lista externa |
SPException | Una vez establecida, no se puede cambiar el valor de la propiedad. |
Comentarios
Debe tener SPBasePermissions.permisos de Open para establecer esta propiedad.
Ejemplos
En el siguiente ejemplo es una aplicación de consola que consulta la colección de una lista de campos para campos de búsqueda. Para cada campo de búsqueda que se encuentra, la aplicación imprime el nombre del campo, el título de la lista que los puntos del campo de búsqueda a, el campo en el destino de lista que es el origen del valor del campo de búsqueda y el nombre del sitio Web donde se encuentra la lista de origen.
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["Completed 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);
}
// Get the site where the target list is located.
using (SPWeb targetSite = siteCollection.AllWebs[field.LookupWebId])
{
// Get the name of the list where this field gets information.
SPList targetList = targetSite.Lists[new Guid(field.LookupList)];
Console.WriteLine("Related list: {0}", targetList.Title);
// Get the name of the field where this field gets information.
SPField targetField = targetList.Fields.GetFieldByInternalName(field.LookupField);
Console.WriteLine("Related field: {0}", targetField.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
' 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