Непустые поля пустые в слове - PullRequest
0 голосов
/ 14 декабря 2009

Я создал многоколоночное настраиваемое поле и развернул его в 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);

Убедитесь, что настройки видимости в порядке, когда поле уже существует:

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 они пусты!

Кто-нибудь видел это раньше, что я делаю не так!?

1 Ответ

0 голосов
/ 16 декабря 2009

Чтобы иметь возможность открыть поле в DIP (информационная панель документа вверху в текстовых документах), вам нужно добавить свойство SourceId к полю:

SourceID="http://schemas.microsoft.com/sharepoint/v3"

Для получения дополнительной информации см. здесь (msdn).

...