0

複数列のカスタム フィールドを作成し、SharePoint に展開しました。カスタム フィールドのフィールド値を使用できるようにするために、イベント レシーバーもデプロイして、カスタム フィールドの 3 つの値を 3 つの個別の通常のテキスト フィールドにコピーしました。3 つのテキスト フィールドが存在しない場合は、コードで 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 でドキュメントを開くまでうまく機能し、3 つのテキスト フィールドにはすべてリストにテキストが割り当てられていますが、Word では空です!

誰かがこれを見たことがありますか、私は何を間違っていますか!?

4

1 に答える 1

0

DIP (Word 文書の上部にある文書情報パネル) でフィールドを開くことができるようにするには、フィールドに SourceId プロパティを追加する必要があります。

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

詳細については、こちら(msdn) を参照してください。

于 2009-12-16T07:53:09.953 に答える