Auflösen der Werte von Lookup-Feldern
Lookup-Felder erlauben Verknüpfungen von Werten eines Listeneintrages mit einer anderen Liste. List man diese Werte über das SharePoint-Objektmodell aus, erhält man über das SPListItem eine Zeichenkette in der Form “id;#wert”, wobei id die eindeutige Id des verknüpften Listenwertes darstellt und wert den eigentliche Inhalt. Will man nun diese Informationen getrennt verarbeiten, war bisher ein relativ aufwendiges Teilen des Strings nötig. Im WSS 3.0 SDK ist das nun nicht mehr nötig:
Hier gibt es das SPFieldLookupValue bzw. SPFieldLookupValueCollection Objekt. Damit kann nun einerseits ein neuer Nachschlagewert in die Liste eingetragen werden bzw. ein vorhandener ausgelesen werden. Über die zugehörigen LookupId und LookupValue Eigenschaften stehen nun sofort die oben genannten Werte zur Verfügung. Dazu muss dem Konstruktor lediglich der String, der die Lookupbeziehung beschreibt, übergeben werden:
SPFieldLookupValue lookupField = new SPFieldLookupValue(item["lookupTitle"].ToString());
string id = lookupField.LookupId; //enthält die Id des verknüpften ListItems
string value = lookupField.LookupValue; //enthält den Wert des verknüpften ListItems
Falls für die Verknüpfung mehrere Werte zulässt kann entsprechend die SPFieldLookupValueCollection verwendet werden:
SPFieldLookupValueCollection flvc =
new SPFieldLookupValueCollection(item["lookupTitle"].ToString());
foreach (SPFieldLookupValue flv in flvc)
{
string id = flv.LookupId; //enthält die Id des verknüpften ListItems
string value = flv.LookupValue; //enthält den Wert des verknüpften ListItems
}
Am 22. April 2008 um 12:05 Uhr
[...] Auflösen der Werte von Lookup-Feldern [...]