SPFieldLookup.PrimaryFieldId 属性
获取或设置标识主查找字段 (如果字段是依赖型查阅字段的 GUID 的字符串表示形式。
命名空间: Microsoft.SharePoint
程序集: Microsoft.SharePoint(位于 Microsoft.SharePoint.dll 中)
语法
声明
Public Property PrimaryFieldId As String
Get
Set
用法
Dim instance As SPFieldLookup
Dim value As String
value = instance.PrimaryFieldId
instance.PrimaryFieldId = value
public string PrimaryFieldId { get; set; }
属性值
类型:System.String
如果字段中的多列查找的辅助字段,此属性返回的字符串表示形式的 GUID 来标识主查找字段。否则,它将返回空字符串。
异常
异常 | 条件 |
---|---|
SPException | 该设置后,不能更改此属性的值。 |
NotSupportedException | 字段所属的外部列表。 |
备注
当您创建多个列的查阅时,主字段是SPFieldLookup对象,建立了与源列表之间的关系。一个或多个辅助字段取决于关系到源列表的主字段。
如果当前的SPFieldLookup对象的IsDependentLookup属性返回true,则当前对象是辅助字段,其PrimaryFieldId属性将返回 GUID 的字符串表示形式的标识它所依赖的主查找字段。
示例
下面的示例是一个控制台应用程序,检查列表,寻找SPFieldLookup的对象相关联的字段的集合。当它找到一个时,在应用程序中的代码将确定对象是否表示一个主要或次要的列。如果该对象表示第二列,该代码将使用由PrimaryFieldId属性返回的值以获取主列的显示名称。
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