SPFieldCollection.AddDependentLookup-Methode
Fügt ein sekundäres Nachschlagefeld hinzu, das von einem primären Nachschlagefeld für die Beziehung mit der Liste abhängig ist, aus der die verwendeten Informationen stammen.
Namespace: Microsoft.SharePoint
Assembly: Microsoft.SharePoint (in Microsoft.SharePoint.dll)
Syntax
'Declaration
Public Function AddDependentLookup ( _
displayName As String, _
primaryLookupFieldId As Guid _
) As String
'Usage
Dim instance As SPFieldCollection
Dim displayName As String
Dim primaryLookupFieldId As Guid
Dim returnValue As String
returnValue = instance.AddDependentLookup(displayName, _
primaryLookupFieldId)
public string AddDependentLookup(
string displayName,
Guid primaryLookupFieldId
)
Parameter
displayName
Typ: System.StringDer Anzeigename für den sekundären Nachschlagefelds.
primaryLookupFieldId
Typ: System.GuidDer Wert der Id -Eigenschaft des SPFieldLookup -Objekts, das primäre Feld darstellt.
Rückgabewert
Typ: System.String
Das Feld interne Name.
Ausnahmen
Ausnahme | Bedingung |
---|---|
ArgumentNullException | Der im displayName -Parameter übergebene Wert ist Null oder eine leere Zeichenfolge. |
ArgumentNullException | Der im primaryLookupFieldId -Parameter übergebene Wert ist "GUID.Empty" oder Null. |
SPException | Das Feld in der primaryLookupFieldId -Parameter übergebene Wert nicht vorhanden ist, ist nicht vom Typ SPFieldLookupoder die IsDependentLookup -Eigenschaft gibt truezurück. |
Hinweise
In einer Suche mehrere Spalte ist das primäre Feld das SPFieldLookup -Objekt, das die Beziehung mit der Liste hergestellt wird, der die Quelle für das Nachschlagefeld Wert ist. Das primäre Feld für ihre Beziehung zu der Liste können dann eine oder mehrere sekundäre Felder abhängen. Die Quellliste kennt das Hauptfeld; Das heißt, erkennen Sie das Hauptfeld durch die Objekte in der Auflistung der Quellliste GetRelatedFields() -Methode zurückgegebene untersuchen. Das Hauptfeld ist, beachten Sie alle Felder, die davon abhängen. Sie können abhängige Felder ermitteln, indem das primäre Feld GetDependentLookupInternalNames() -Methode.
Zum Erstellen einer mehrspaltigen Suche zunächst das Hauptfeld durch Aufrufen der AddLookup(String, Guid, Boolean) -Methode erstellen. Die AddDependentLookup -Methode können dann eine oder mehrere sekundäre Felder erstellen, von die das Primärfeld abhängen.
Beispiele
Im folgende Beispiel ist eine Konsolenanwendung, die die Auflistung der Felder der Liste der ausstehenden Bestellungen zugeordnet und fügt ein Lookup-Feld mit dem Namen Kunden-ID-ID-Feld in der Liste Debitoren verweist. Der Code erstellt dann ein sekundärer Feld, das das Feld Kunden-ID für die Beziehung zu der Liste der Kunden abhängt.
using System;
using Microsoft.SharePoint;
namespace RelatedLists
{
class Program
{
static void Main(string[] args)
{
using (SPSite siteCollection = new SPSite("https://localhost"))
{
using (SPWeb site = siteCollection.OpenWeb())
{
SPList sourceList = site.Lists["Customers"];
SPList dependentList = site.Lists["Pending Orders"];
// Create the primary column.
string strPrimaryCol = dependentList.Fields.AddLookup("Customer ID", sourceList.ID, true);
SPFieldLookup primaryCol = (SPFieldLookup)dependentList.Fields.GetFieldByInternalName(strPrimaryCol);
primaryCol.LookupField = sourceList.Fields["ID"].InternalName;
primaryCol.Indexed = true;
primaryCol.RelationshipDeleteBehavior = SPRelationshipDeleteBehavior.Restrict;
primaryCol.Update();
// Create the secondary column.
string strSecondaryCol = dependentList.Fields.AddDependentLookup("Last Name", primaryCol.Id);
SPFieldLookup secondaryCol = (SPFieldLookup)dependentList.Fields.GetFieldByInternalName(strSecondaryCol);
secondaryCol.LookupField = sourceList.Fields["Last Name"].InternalName;
secondaryCol.Update();
// Make the primary column the first one on New and Edit forms.
SPContentType contentType = dependentList.ContentTypes[0];
SPFieldLinkCollection fieldRefs = contentType.FieldLinks;
fieldRefs.Reorder(new[] { primaryCol.InternalName });
contentType.Update();
// Add the columns to the default view.
SPView view = dependentList.DefaultView;
if (view != null)
{
SPViewFieldCollection viewFields = view.ViewFields;
if (viewFields != null)
{
viewFields.Add(primaryCol);
viewFields.Add(secondaryCol);
viewFields.MoveFieldTo(primaryCol.InternalName, 0);
viewFields.MoveFieldTo(secondaryCol.InternalName, 1);
view.Update();
}
}
}
}
Console.Write("\nPress ENTER to continue...");
Console.ReadLine();
}
}
}
Imports System
Imports Microsoft.SharePoint
Namespace RelatedLists
Class Program
Shared Sub Main(ByVal args As String())
Using siteCollection As New SPSite("https://localhost")
Using site As SPWeb = siteCollection.OpenWeb()
Dim sourceList As SPList = site.Lists("Customers")
Dim dependentList As SPList = site.Lists("Pending Orders")
' Create the primary column.
Dim strPrimaryCol As String = dependentList.Fields.AddLookup("Customer ID", sourceList.ID, True)
Dim primaryCol As SPFieldLookup = DirectCast(dependentList.Fields.GetFieldByInternalName(strPrimaryCol), SPFieldLookup)
primaryCol.LookupField = sourceList.Fields("ID").InternalName
primaryCol.Indexed = True
primaryCol.RelationshipDeleteBehavior = SPRelationshipDeleteBehavior.Restrict
primaryCol.Update()
' Create the secondary column.
Dim strSecondaryCol As String = dependentList.Fields.AddDependentLookup("Last Name", primaryCol.Id)
Dim secondaryCol As SPFieldLookup = DirectCast(dependentList.Fields.GetFieldByInternalName(strSecondaryCol), SPFieldLookup)
secondaryCol.LookupField = sourceList.Fields("Last Name").InternalName
secondaryCol.Update()
'Make the primary column the first one on New and Edit forms.
Dim contentType As SPContentType = dependentList.ContentTypes(0)
Dim fieldRefs As SPFieldLinkCollection = contentType.FieldLinks
fieldRefs.Reorder(New String() {primaryCol.InternalName})
contentType.Update()
' Add the columns to the default view.
Dim view As SPView = dependentList.DefaultView
If view <> Nothing Then
Dim viewFields As SPViewFieldCollection = view.ViewFields
If viewFields <> Nothing Then
viewFields.Add(primaryCol)
viewFields.Add(secondaryCol)
viewFields.MoveFieldTo(primaryCol.InternalName, 0)
viewFields.MoveFieldTo(secondaryCol.InternalName, 1)
view.Update()
End If
End If
End Using
End Using
Console.Write(vbLf & "Press ENTER to continue...")
Console.ReadLine()
End Sub
End Class
End Namespace
Siehe auch
Referenz
Microsoft.SharePoint-Namespace
AddLookup(String, Guid, Boolean)