2012-09-24 41 views
5

Merhaba Paylaşım 2007'de iki tane listelem var. Listede diğer alana bakan bir arama sütunum var. İkinci listeye bir öğe eklemek için sharepoint nesne modelini kullanmak istiyorum. Arama alanı değeri nasıl ayarlanır? (Değer diğer listede zaten).?Paylaşım alanındaki bir arama alanına değer nasıl eklenir?

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

Bu aynı zamanda Faydalı [Get ve kullanma SharePoint Arama Alan Değerlerini Set ssom C#] (https://social.technet.microsoft.com/wiki/contents//40271.get-and-set-a-sharepoint-lookup-field-values-using-ssom-c.aspx) –

cevap

3

Arama alanlar satırın kimliği bir arada ve 1:#HumanResources veya 12:#Engineering olabilir sizin durumunuzda :# ile ayrılan gösterilecek sütunun değerini, içerecektir.

Bu nedenle, bir aramayı referans almak için, yalnızca kimliğin ayarlanması yeterli olmaz, bunun yerine yukarıda belirtilen dizenin ayarlanması gerekir. Neyse ki SharePoint yapar sınıfı SPFieldLookupValue sağlar tam olarak bu:

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

Bu gerekli görünmüyor. Ayarladıktan sonra çalışanın ["Bölüm"] değerini kontrol edersem, sadece "1" olarak ayarlanır. Ve eğer sadece çalışanı ["Departman"] = "1" yaparsam; employee.Update(); iyi çalışıyor. – xr280xr

+0

@ xr280xr, burada _SharePoint 2007_ hakkında konuştuğumuza dikkat edin ... – Spontifixus

+0

Evet, burada aynı. – xr280xr