sharepoint - 通过对象模型添加自定义列到列表

时间:2009-06-16 13:58:58

标签: sharepoint

我无法弄清楚如何将自定义列类型添加到包含对象模型的列表中。

SPFieldCollection.Add()有一个参数SPFieldType,但它必须是Microsoft.SharePoint.SPFieldType枚举中的枚举值之一,因此它不能用于创建自定义类型的列。

我接下来尝试使用SPFieldCollection.CreateNewField(),但是当我在返回的值上调用SPField.Update()时,我得到一个异常:“ArgumentException未处理。值不在预期范围内。”。

我在这里看到对SPFieldCollection.AddFieldAsXml()的引用:How do I add custom column to existing WSS list template但几乎没有任何信息,我不确定这是正确的选择。

更新:我在AddFieldAsXml上发现了一篇帖子:http://weblogs.asp.net/bsimser/archive/2005/07/21/420147.aspx,事实证明它非常简单,对我来说效果很好。无论如何都希望它会帮助别人。

2 个答案:

答案 0 :(得分:3)

SPFieldCollection.AddFieldAsXml()是我可以告诉你的方法。请参阅此处以获取示例:http://weblogs.asp.net/bsimser/archive/2005/07/21/420147.aspx

答案 1 :(得分:1)

 Try with:

 SPField newField = null;
 newField= web.Fields.CreateNewField("MyFieldTypeName", fieldName); 
 web.Fields.Add(newField);

 newField = web.Fields[fieldName];

 // set some properties
 newField.ShowInDisplayForm = false;
 newField.ShowInViewForms = true;
 newField.Update();