0
我已創建多列自定義字段並將其部署到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中它們是空的!
有沒有人看過這個,我做錯了什麼!?
通過使用docx擴展而不是舊文檔來解決它! – 2009-12-14 15:22:40
如果有人有時間。關於以編程方式向列表項添加字段的最佳做法是什麼?是否應該將它們添加到內容類型,列表或列表項目中? – 2009-12-14 15:24:11