以编程方式将SPFieldLookup添加到列表中?

时间:2010-03-25 10:22:28

标签: c# .net sharepoint-2010

我以编程方式将SPFieldLookup字段添加到列表中。

当我检查列表视图时,我发现查找字段就像是从用户inerface添加它而没有指定它链接到项目。

是否有方法强制将lookupfield以编程方式链接到项目?

3 个答案:

答案 0 :(得分:1)

如果要配置SPFieldLookup字段所在的列表和目标列表,则会出现问题。因为SPFieldLookup字段需要通过其GUID分配目标列表,GUID是在激活功能时动态创建的。 并且您无法在字段定义中定义此值,因为它尚不存在。

此问题的解决方案是正常配置“源”列表和目标列表,但源列表中的SPFieldLookup字段除外。
然后,在功能激活事件中,您以编程方式添加此查找字段,现在可以完成,因为您已经(或至少可以找到)目标列表的GUID。

答案 1 :(得分: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();

答案 2 :(得分:-1)

之后是否填写了所有需要的属性(LookupField,LookupWebId,也许还有LookupList)和Update()字段?

也许http://www.alexbruett.net/?p=153会有所帮助