Я пытаюсь извлечь имена полей из списка, но только те, которые обычно отображаются в форме редактирования / просмотра. Однако это оказывается сложнее, чем предполагалось вначале.
Фильтрация полей по простому отсутствию полей с SPField.Hidden == true
по-прежнему приводит к появлению множества полей, которые не имеют отношения к этому контексту. Стандартная библиотека документов дает этот результат в качестве примера:
FileLeafRef, Title, CaseID, DocID, Finalized, Related, RegistrationDate, ItemSelectField,
ExtendedDocIcon, CaseRecordNumber, Local_x0020_Attachment, ID, ContentType, Created,
Author, Modified, Editor, _CopySource, CheckoutUser, _CheckinComment, LinkFilenameNoMenu,
LinkFilename, FileSizeDisplay, Edit, _UIVersionString, ParentVersionString, ParentLeafName
Я взял внутренние имена, потому что у меня есть версия Sharepoint на датском языке, но вы поняли идею. В приведенном выше заголовке, CaseID, DocID и LinkFilename и, возможно, будут использоваться еще несколько полей - одно можно сказать наверняка, при просмотре элемента или вставке нового отображается менее половины этих полей.
Я попробовал SPField.ShowIn*
(DisplayForm, EditForm и т. Д.), Но все они установлены на ноль или ложь для всех полей.