2010-03-25 179 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(); 
相关问题