2010-03-25 94 views
0

我以編程方式將SPFieldLookup字段添加到列表中。以編程方式將SPFieldLookup添加到列表中?

當我檢查我的列表視圖時,我發現查找字段就好像我從用戶界面添加它,但沒有指定它與項鍊接。

是否有一種方法強制lookupfield以編程方式鏈接到物品?

+0

好吧,我發現它 它不能以編程方式來達到的,儘管這將是 可在SharePoint 2010 你可以從SharePoint界面做 感謝 – 2010-03-25 11:02:05

回答

1

如果您要調配SPFieldLookup字段所在的列表和目標列表,您將遇到問題。因爲SPFieldLookup字段需要通過其GUID來分配目標列表,該GUID在激活功能時動態創建。 而且你不能在你的字段定義中定義這個值,因爲它還不存在。

此問題的解決方案是正常設置「源」列表和目標列表,但源列表中的SPFieldLookup字段除外。
然後,在功能激活事件中,以編程方式添加此查找字段,現在可以完成此操作,因爲您已經(或至少可以找到)目標列表的GUID。

-1

你是否填滿了所有需要的屬性(LookupField,LookupWebId,也許還LookupList)和更新()後?

也許http://www.alexbruett.net/?p=153將有助於

+0

鏈接是死所以這個答案是不有用。這就是爲什麼在鏈接異地時總結重點的好習慣。 – Amicable 2014-01-09 13:37:45

0

這是一個很好的片段,我看到並喜歡分享 讓我們假設我們有兩個列表ALIST和bList已創建。 要求是在aList中創建一個查找列,它將查找bList中的值。

SPList aList = web.Lists["aList"]; 
SPList bList = web.Lists["bList"]; 
aList.Fields.AddLookup("Lookup", bList.ID, false); 
SPFieldLookup fldLookup = aList.Fields["Lookup"] as SPFieldLookup; 
fldLookup.LookupField = bList.Fields[SPBuiltInFieldId.Title].InternalName; 
fldLookup.Update(); 
相關問題