仅来自Sharepoint列表的自定义字段

时间:2011-03-17 14:52:47

标签: c# sharepoint splist

是否可以遍历共享点列表的字段集合并仅检索我们的自定义字段而不是sharepoint内置字段。

using (SPSite site = new SPSite("http://localhost/"))
{
   using (SPWeb web = site.OpenWeb())
   {
       SPList list = web.Lists["My List"];
       foreach (SPField field in list.Fields)
       {
           //We also get sharepoint built-in column here. And we don't want that, just our
           //custom created fields.
       }
   }
}

任何帮助都将不胜感激。

由于

3 个答案:

答案 0 :(得分:9)

您有两种选择:

  1. 检查字段是否为内置字段:SPBuiltInFieldId.Contains(field.Id)
  2. 检查SPField.SourceId(来自MSDN):
  3.   

    获取定义内置字段的命名空间,或者,如果是自定义字段,则获取标识创建它的列表或网站的GUID。

答案 1 :(得分:0)

这是一种人为的(当前未经测试的)方式:

string fieldTypeClass = field.FieldTypeDefinition.FieldTypeClass;

if (!(string.IsNullOrEmpty(fieldTypeClass) || fieldTypeClass.StartsWith("Microsoft.SharePoint"))) {
//Only custom fields here
}

答案 2 :(得分:-2)

我不知道它是否真的是你正在寻找的,如果LINQ仍然被.net digirati“微笑”,but using LINQ to Sharepoint might work for you.