您好,感谢您的期待!
我目前有一个C#方法用于循环SharePoint列表集并返回这些SP列表的列表,包括其列/ SPField的嵌套列表。
如何通过C#获取SharePoint 2007列表中仅用户创建的字段列表?
到目前为止SPSite site = SPContext.Current.Site;
SPWeb web = site.OpenWeb();
web.AllowUnsafeUpdates = true;
SPListCollection lists = web.Lists;
var PellaListCollection = new List<PellaListModel>();
foreach (SPList l in lists) {
var PellaList = new PellaListModel();
var PellaListColumns = new List<PellaListColumn>();
foreach (SPField c in l.Fields) {
if (c.Hidden.Equals(false))
{
var type = c.FieldTypeDefinition.TypeName.ToString();
var col = new PellaListColumn
{
ColumnId = c.Id,
ColumnDataType = type,
ColumnTitle = c.Title
};
PellaListColumns.Add(col);
}
}
PellaList.ListColumns = PellaListColumns;
PellaList.ListId = l.ID;
PellaList.ListTitle = l.Title;
PellaList.Description = l.Description;
PellaListCollection.Add(PellaList);
}
web.AllowUnsafeUpdates = false;
return PellaListCollection;
}
正如您所看到的,现在我正在过滤哪些SPField不是&#34; Hidden&#34;,但这仍然会返回一些标准的SharePoint生成的字段与列表。我只需要用户创建的字段。
谢谢!
马特
答案 0 :(得分:2)
您正在寻找SPField
的{{3}}属性。如果该字段是List的原始模式的一部分,则此属性为true。
查看此商品FromBaseType了解更多信息。
答案 1 :(得分:0)