我创建了一个多列自定义字段并将其部署在 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 中它们是空的!
有没有人见过这个,我做错了什么!?