SPFieldLookupValue 类

包含一个SPFieldLookup对象的值。

继承层次结构

System.Object
  Microsoft.SharePoint.SPFieldLookupValue
    Microsoft.SharePoint.SPFieldUserValue

命名空间:  Microsoft.SharePoint
程序集:  Microsoft.SharePoint(位于 Microsoft.SharePoint.dll 中)

语法

声明
Public Class SPFieldLookupValue
用法
Dim instance As SPFieldLookupValue
public class SPFieldLookupValue

备注

此类别的范例代表一个字段值的查阅字段。查阅字段可以具有多个值或只是其中一个。可以确定的是这种情况的查阅字段的AllowMultipleValues属性的值进行检查。如果属性返回true,字段可以具有多个值 ;如果它返回false,则它不能。

如果查阅字段不允许多个值,该字段值是项的类型String ,其中包含查阅字段和字段中的项,指向查阅字段的值指向列表中的 ID 的对象。您可以将该字符串作为参数传递给SPFieldLookupValue(String)构造函数创建一个SPFieldLookupValue对象。然后您可以从LookupId属性,并从LookupValue属性列表项中的字段的值来获取的列表项 ID。

如果查阅字段允许多个值,则该字段值是被装箱为类型Object的类型SPFieldLookupValueCollection的对象。SPFieldLookupValueCollection对象是SPFieldLookupValue对象的集合。您可以枚举集合并访问每个对象的LookupValue属性提取的字段值。

示例

下面的示例演示如何设置查找字段的值。

此代码示例是一个控制台应用程序,它获取两个相关的列表,客户和订单的参考。在客户列表中的每一项表示一个客户记录和项中的 ID 字段用于标识客户。在订单列表中的每一项表示客户的订单。订单列表中有一个名为 ID 字段中的客户列表中,指向标识下订单的客户的客户 ID 的查阅字段。

在foreach循环中的代码循环访问的客户,客户列表上的每个客户的订单列表中添加新项的列表。在每种情况下,代码将设置值的查阅字段,客户 ID,以链接到客户的订单。

using System;
using Microsoft.SharePoint;

namespace ConsoleApp
{
    class Program
    {
        static void Main(string[] args)
        {
            using (SPSite site = new SPSite("https://localhost"))
            {
                using (SPWeb web = site.RootWeb)
                {
                    SPList customerList = web.Lists.TryGetList("Contoso Customers");
                    SPList orderList = web.Lists.TryGetList("Contoso Orders");

                    if (customerList != null && orderList != null)
                    {
                        SPListItemCollection customers = customerList.Items;
                        SPListItemCollection orders = orderList.Items;

                        string fieldName = "CustIDLookup";
                        if (!orderList.Fields.ContainsField(fieldName))
                            return;
                        
                        SPField lookupFld = orderList.Fields.GetField(fieldName);

                        foreach (SPListItem customer in customers)
                        {
                            SPListItem order = orders.Add();
                            order[SPBuiltInFieldId.Title] = "Thank you!";
                            order.Update();

                            SPFieldLookupValue value = new SPFieldLookupValue(customer.ID, customer.ID.ToString());
                            order[lookupFld.Id] = value.ToString();
                            order.Update();
                        }
                    }
                }
            }
        }
    }
}
Imports System
Imports Microsoft.SharePoint

Module ConsoleApp

    Sub Main()
        Using site As New SPSite("https://localhost")
            Using web As SPWeb = site.OpenWeb()

                Dim customerList As SPList = web.Lists.TryGetList("Contoso Customers")
                Dim orderList As SPList = web.Lists.TryGetList("Contoso Orders")

                If customerList IsNot Nothing AndAlso orderList IsNot Nothing Then
                    Dim customers As SPListItemCollection = customerList.Items
                    Dim orders As SPListItemCollection = orderList.Items

                    Dim fieldName As String = "CustIDLookup"
                    If Not orderList.Fields.ContainsField(fieldName) Then
                        Return
                    End If

                    Dim lookupFld As SPField = orderList.Fields.GetField(fieldName)

                    For Each customer As SPListItem In customers
                        Dim order As SPListItem = orders.Add()
                        order(SPBuiltInFieldId.Title) = "Thank you!"
                        order.Update()

                        Dim value As New SPFieldLookupValue(customer.ID, customer.ID.ToString())
                        order(lookupFld.Id) = value.ToString()
                        order.Update()
                    Next
                End If

            End Using
        End Using
    End Sub
End Module

线程安全性

该类型的任何公共 静态 (已共享 在 Visual Basic 中) 成员都是线程安全的。不保证任何实例成员都是线程安全的。

另请参阅

引用

SPFieldLookupValue 成员

Microsoft.SharePoint 命名空间