SPFieldLookupValueCollection class
包含可以包含多個值的SPFieldLookup物件的值。
Inheritance hierarchy
System.Object
System.Collections.Generic.List<SPFieldLookupValue>
Microsoft.SharePoint.SPFieldLookupValueCollection
Namespace: Microsoft.SharePoint
Assembly: Microsoft.SharePoint (in Microsoft.SharePoint.dll)
Syntax
'宣告
<SerializableAttribute> _
Public Class SPFieldLookupValueCollection _
Inherits List(Of SPFieldLookupValue) _
Implements ISerializable
'用途
Dim instance As SPFieldLookupValueCollection
[SerializableAttribute]
public class SPFieldLookupValueCollection : List<SPFieldLookupValue>,
ISerializable
Examples
下列範例示範如何讀取多重值查詢欄位的值。此範例是主控台應用程式,會逐一查看工作清單上的項目。程式碼會查看每個項目中的 [前置任務] 欄位,並列印標題的項目,每個前置任務的任務數目與前置任務和標題的數量。
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.OpenWeb())
{
SPList list = web.Lists.TryGetList("Tasks");
if (list != null)
{
foreach (SPListItem item in list.Items)
{
// Get the predecessors.
string rawvalue = item[SPBuiltInFieldId.Predecessors].ToString();
// Print information about the task.
SPFieldLookupValueCollection values = new SPFieldLookupValueCollection(rawvalue);
Console.WriteLine("\nTask {0}: {1}", item.ID, item.Title);
Console.WriteLine("\tPredecessors: {0}", values.Count);
// Print the predecessors.
foreach (SPFieldLookupValue value in values)
Console.WriteLine("\t{0} (Task {1})", value.LookupValue, value.LookupId);
}
}
}
}
Console.Write("\nPress ENTER to continue....");
Console.Read();
}
}
}
Imports System
Imports Microsoft.SharePoint
Module ConsoleApp
Sub Main()
Using site As New SPSite("https://localhost")
Using web As SPWeb = site.OpenWeb()
Dim list As SPList = web.Lists.TryGetList("Tasks")
If list IsNot Nothing Then
For Each item As SPListItem In list.Items
' Get the predecessors.
Dim rawvalue As String = item(SPBuiltInFieldId.Predecessors).ToString()
' Print information about the task.
Dim values As New SPFieldLookupValueCollection(rawvalue)
Console.WriteLine(vbLf & "Task {0}: {1}", item.ID, item.Title)
Console.WriteLine(vbTab & "Predecessors: {0}", values.Count)
' Print the predecessors.
For Each value As SPFieldLookupValue In values
Console.WriteLine(vbTab & "{0} (Task {1})", value.LookupValue, value.LookupId)
Next
Next
End If
End Using
End Using
Console.Write(vbCrLf & "Press ENTER to continue....")
Console.Read()
End Sub
End Module
下列範例示範如何寫入多重值查詢欄位的值。此範例是主控台應用程式,會尋找中站台集合的根網站的問題清單。如果找到問題清單,則應用程式會將兩個新的項目加入至清單,並設定中每個項目相關的項目欄位的值。
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 list = null;
foreach (SPList webList in web.Lists)
{
if (webList.BaseType == SPBaseType.Issue)
{
list = webList;
break;
}
}
if (list != null)
{
SPListItemCollection items = list.Items;
SPFieldLookupValueCollection relatedItems = new SPFieldLookupValueCollection();
SPListItem firstItem = items.Add();
firstItem[SPBuiltInFieldId.Title] = "The first issue";
firstItem.Update();
SPFieldLookupValue firstLookupValue = new SPFieldLookupValue(firstItem.ID, firstItem.Title);
relatedItems.Add(firstLookupValue);
SPListItem secondItem = items.Add();
secondItem[SPBuiltInFieldId.Title] = "The second issue";
secondItem[SPBuiltInFieldId.RelatedIssues] = relatedItems.ToString();
secondItem.Update();
relatedItems.Remove(firstLookupValue);
relatedItems.Add(new SPFieldLookupValue(secondItem.ID, secondItem.Title));
firstItem[SPBuiltInFieldId.RelatedIssues] = relatedItems.ToString();
firstItem.Update();
}
}
}
}
}
}
Imports System
Imports Microsoft.SharePoint
Module ConsoleApp
Sub Main()
Using site As New SPSite("https://localhost")
Using web As SPWeb = site.OpenWeb()
Dim list As SPList = Nothing
For Each webList As SPList In web.Lists
If webList.BaseType = SPBaseType.Issue Then
list = webList
Exit For
End If
Next
If list IsNot Nothing Then
Dim items As SPListItemCollection = list.Items
Dim relatedItems As New SPFieldLookupValueCollection()
Dim firstItem As SPListItem = items.Add()
firstItem(SPBuiltInFieldId.Title) = "The first issue"
firstItem.Update()
Dim firstLookupValue As New SPFieldLookupValue(firstItem.ID, firstItem.Title)
relatedItems.Add(firstLookupValue)
Dim secondItem As SPListItem = items.Add()
secondItem(SPBuiltInFieldId.Title) = "The second issue"
secondItem(SPBuiltInFieldId.RelatedIssues) = relatedItems.ToString()
secondItem.Update()
relatedItems.Remove(firstLookupValue)
relatedItems.Add(New SPFieldLookupValue(secondItem.ID, secondItem.Title))
firstItem(SPBuiltInFieldId.RelatedIssues) = relatedItems.ToString()
firstItem.Update()
End If
End Using
End Using
End Sub
End Module
Thread safety
Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.