2012-09-24 15 views
5

Ciao Ho due elenchi in sharepoint 2007. Ho una colonna di ricerca nell'elenco che guarda l'altro campo. Desidero utilizzare il modello a oggetti sharepoint per aggiungere un elemento al secondo elenco. Come impostare il valore del campo di ricerca. (Il valore è già nell'altra lista).?Come aggiungere un valore a un campo di ricerca in sharepoint?

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

Questo anche utile [Ottenere e impostare un Values ​​SharePoint Lookup campo utilizzando SSOM C#] (https://social.technet.microsoft.com/wiki/contents/ articoli/40271.get-and-set-a-sharepoint-lookup-field-values-using-ssom-c.aspx) –

risposta

3

campi di ricerca conterranno una combinazione di id della riga e il valore della colonna per visualizzare, separati da :#, nel caso che potrebbe essere 1:#HumanResources o 12:#Engineering.

Quindi, per fare riferimento a una ricerca, è sufficiente impostare l'id non sarà sufficiente, invece la stringa sopra menzionata deve essere impostata. Fortunatamente SharePoint fornisce la classe SPFieldLookupValue che fa esattamente questo:

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

Questo non sembra essere necessario. Se controllo il valore del dipendente ["Reparto"] dopo averlo impostato, è semplicemente impostato su "1". E se faccio solo dipendente ["Dipartimento"] = "1"; employee.Update(); funziona bene – xr280xr

+0

@ xr280xr, attenzione che stiamo parlando di _SharePoint 2007_ qui ... – Spontifixus

+0

Sì, lo stesso qui. – xr280xr