2012-09-24 27 views
5

Witam Mam dwie listy w sharepoint 2007. Mam kolumna odnośnika na liście, która wygląda na inne pole. Chcę użyć modelu obiektu Sharepoint, aby dodać element do drugiej listy. Jak ustawić wartość pola odnośnika. (Wartość jest już na drugiej liście).?Jak dodać wartość do pola odnośnika w programie SharePoint?

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

to również pomocne [Get i ustawić wartości pól wyszukiwania SharePoint Korzystanie SSOM C#] (https://social.technet.microsoft.com/wiki/contents/ articles/40271.get-and-set-a-sharepoint-lookup-field-values-using-ssom-c.aspx) –

Odpowiedz

3

pola odnośników zawiera kombinację identyfikatora Row oraz wartość kolumny do wyświetlania rozdzielonych :#, w danym przypadku, że może być 1:#HumanResources lub 12:#Engineering.

Aby odwołać się do wyszukiwania, wystarczy ustawić identyfikator, który nie będzie wystarczający, zamiast tego należy ustawić powyższy ciąg. Na szczęście SharePoint zapewnia klasę SPFieldLookupValue który robi dokładnie to:

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

Nie wydaje się to konieczne. Jeśli sprawdzę wartość pracownika ["Dział"] po ustawieniu, po prostu ustawiam go na "1". A jeśli po prostu robię pracownika ["Dział"] = "1"; employee.Update(); to działa dobrze. – xr280xr

+0

@ xr280xr, pamiętajmy, że mówimy o _SharePoint 2007_ tutaj ... – Spontifixus

+0

Tak, to samo tutaj. – xr280xr