Привет и спасибо за поиск!
Фон
В настоящее время у меня есть метод C # для циклического просмотра коллекции списков SharePoint и возврата списков этих списков SP, включая вложенный список их столбцов / SPFields.
Проблема
Как получить список ТОЛЬКО пользовательских полей в списке SharePoint 2007 через C #?
Код пока. , .
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;
}
Как вы можете видеть, сейчас я фильтрую, с помощью которого SPFields не являются "скрытыми", но это все равно возвращает довольно много стандартных сгенерированных SharePoint полей со списком. Мне просто нужны поля, созданные пользователями.
Спасибо!
Мэтт