Freigeben über


SPFieldLookupValueCollection-Klasse

Enthält die Werte für ein SPFieldLookup -Objekt, das mehrere Werte enthalten kann.

Vererbungshierarchie

System.Object
  System.Collections.Generic.List<SPFieldLookupValue>
    Microsoft.SharePoint.SPFieldLookupValueCollection

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

Syntax

'Declaration
<SerializableAttribute> _
Public Class SPFieldLookupValueCollection _
    Inherits List(Of SPFieldLookupValue) _
    Implements ISerializable
'Usage
Dim instance As SPFieldLookupValueCollection
[SerializableAttribute]
public class SPFieldLookupValueCollection : List<SPFieldLookupValue>, 
    ISerializable

Beispiele

Im folgenden Beispiel wird veranschaulicht, wie der Wert eines Nachschlagefelds Mehrfachwert gelesen. Das Beispiel ist eine Konsolenanwendung, die die Elemente in der Aufgabenliste durchlaufen werden. Der Code befasst sich mit dem Feld Vorgänger jedes Element und gibt den Titel des Elements, die Anzahl der Vorgänger und den Titel und Aufgabe Anzahl von jeder Vorgänger.

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

Das folgende Beispiel zeigt, wie Sie den Wert eines Nachschlagefelds mit mehreren Werten zu schreiben. Das Beispiel ist eine Konsolenanwendung, die für eine Problemliste in der Stammwebsite der Websitesammlung aussieht. Wenn eine Problemliste gefunden wird, wird die Anwendung der Liste zwei neue Elemente hinzugefügt, und legt den Wert des Felds verwandte Elemente in den einzelnen Elementen.

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

Threadsicherheit

Alle öffentlichen static (Shared in Visual Basic) Member dieses Typs sind threadsicher. Die Threadsicherheit von Instanzmembern ist nicht gewährleistet.

Siehe auch

Referenz

SPFieldLookupValueCollection-Member

Microsoft.SharePoint-Namespace