私はプログラムでWebメソッドにsharepoint 2010サイトを作成しています。サイトが作成されると、それは「機能起動」イベント受信機を起動します。このイベントレシーバーでは、サイト上のリストを作成してフィールドを追加しています。<nativehr> 0x80070057</nativehr><nativestack></ nativestack> SharepointリストにChoiceフィールドを作成する場合
私が作成しているフィールドの1つは選択フィールド(ドロップダウンリスト)です。このコントロールにいくつかの選択肢のオプションを追加しますが、サイトが作成されたときにフィールドをドロップすると、リストにオプションがないことがわかります。私は、Webリサーチを通じて、私の選択肢の更新方法を呼び出す必要があることを認識しました。私がこれをやろうとしたら、そのサイトの作成は次のような記述で例外を投げた: 0x80070057 あまり役に立たない。
選択肢フィールドの更新方法をコメントアウトすると、サイトは問題なく再作成されますが、ドロップダウンにはオプションはありません。
SPFieldChoice fldTransmittalStatus =
(SPFieldChoice)newList.Fields.CreateNewField(Microsoft.SharePoint.SPFieldType.Choice.ToString(), Constants.FIELD_TRANSMITTAL_STATUS);
newList.Fields.Add(fldTransmittalStatus);
fldTransmittalStatus.EditFormat = SPChoiceFormatType.Dropdown;
fldTransmittalStatus.Choices.Add("Sent");
fldTransmittalStatus.Choices.Add("Downloaded");
fldTransmittalStatus.Choices.Add("Received");
fldTransmittalStatus.Choices.Add("Resent");
fldTransmittalStatus.Choices.Add("Cancelled");
fldTransmittalStatus.Update(); // when present, this line causes the site creation to fail
. . . .
. . . .
newList.Update();
また、このフィールドをデフォルトビューに含めます。
SPView defaultView = newList.DefaultView;
defaultView.ViewFields.Add(newList.Fields.GetField(Constants.FIELD_TRANSMITTAL_STATUS));
ありがとうを呼び出す前に、リストを更新するようにしてください。これは本当に助けになりました。 – tassieboy
リストを更新した後に選択肢のオプションを追加する必要があるだけでなく、オブジェクトの参照を新しいものにする必要があっただけでなく、 SPFieldChoice fldTransmittalStatus =(SPFieldChoice)newList.Fields [Constants.FIELD_TRANSMITTAL_STATUS]; – tassieboy