Я создал многоколонное пользовательское поле и развернул его в SharePoint. Чтобы иметь возможность использовать значения полей из моего настраиваемого поля, я также развернул приемник событий, чтобы скопировать три значения из моего настраиваемого поля в три отдельных стандартных текстовых поля. Если трех текстовых полей не существует, я создаю их с кодом XML. Я также уверен, что поля имеют правильные параметры видимости, даже если поле существует.Непустые поля пустые в слове
Создание поля в XML:
string fieldXml = string.Format("<Field ID=\"{0}\" " +
"Type=\"{1}\" " +
"Name=\"{2}\" " +
"StaticName=\"{2}\" " +
"DisplayName=\"{2}\" " +
"Required=\"{3}\" " +
"ShowInEditForm=\"TRUE\" " +
"ShowInNewForm=\"TRUE\" " +
"ShowInDisplayForm=\"TRUE\" " +
"ShowInListSettings=\"TRUE\" " +
"ShowInViewForms=\"TRUE\" " +
"ShowInVersionHistory=\"TRUE\" " +
"ShowInFileDlg=\"TRUE\"" +
"></Field>",
Guid.NewGuid(),
fieldType,
fieldName,
required);
list.Fields.AddFieldAsXml(fieldXml, true, SPAddFieldOptions.Default);
Убедитесь, что настройки видимости OK, когда поле уже существует:
field.ShowInEditForm = true;
field.ShowInNewForm = true;
field.ShowInDisplayForm = true;
field.ShowInListSettings = true;
field.ShowInViewForms = true;
field.ShowInVersionHistory = true;
field.Update();
list.Update();
Я не нашел способ установки свойства ShowInFileDlg программно когда поле было создано ,
Дело в том, что этот код отлично работает до тех пор, пока я не открою документ в MS Word, и все три текстовые поля имеют текст, назначенный в списке, но в Word они пусты!
Кто-нибудь видел это раньше, что я делаю неправильно !?
Решил его с помощью расширения docx вместо старого документа! –
Если у кого-то есть время. Какова наилучшая практика по добавлению полей программным способом для перечисления элементов. Следует ли добавить их в тип контента, список или элемент списка? –