2012-09-24 21 views
5

Hallo Ich habe zwei Listen in sharepoint 2007. Ich habe eine Nachschlagespalte in der Liste, die das andere Feld aussieht. Ich möchte das Sharepoint-Objektmodell verwenden, um ein Element zur zweiten Liste hinzuzufügen. Wie setze ich den Nachschlagefeld Wert. (Der Wert ist bereits in der anderen Liste).Wie füge ich einem Suchfeld im Sharepoint einen Wert hinzu?

SPListItem Employee = web.Lists["Employee"].Items.Add(); 
Employee["Name"] = account.Name; 
Employee["Department"] = <lookup value must come here> 
Employee.Update();     
+0

Dies auch hilfreich [Get und ein Sharepoint-Lookup Feldwerte einstellen SSOM C#] (https://social.technet.microsoft.com/wiki/contents/ articles/40271.get-und-set-a-sharepoint-Suchfeld-Werte-using-ssom-c.aspx) –

Antwort

3

Lookup Felder eine Kombination aus der ID der Zeile enthalten und den Wert der Spalte von :#, in Ihrem Fall getrennt anzuzeigen, die 1:#HumanResources oder 12:#Engineering sein könnten.

Um eine Suche zu referenzieren, genügt es nicht, die ID zu setzen, stattdessen muss die oben genannte Zeichenfolge gesetzt werden. Zum Glück Sharepoint bietet die Klasse SPFieldLookupValue, das tut genau das:

var department = web.Lists["Department"].GetItemById(1); 
var employee = web.Lists["Employee"].Items.Add(); 
employee["Name"] = account.Name; 
employee["Department"] = new SPFieldLookupValue(department.ID, department.Title); 
employee.Update(); 
+0

Dies scheint nicht erforderlich zu sein. Wenn ich den Wert von Mitarbeiter ["Abteilung"] nach der Einstellung überprüfe, wird es einfach auf "1" gesetzt. Und wenn ich nur Mitarbeiter ["Department"] = "1" mache; employee.Update(); es funktioniert gut. – xr280xr

+0

@ xr280xr, beachten Sie, dass wir über _SharePoint 2007_ hier sprechen ... – Spontifixus

+0

Ja, das gleiche hier. – xr280xr