SharePoint ListItemの新規、編集、および表示フォームにカスタムコントロールを追加するために使用しているWebパーツがあります。アイテムを更新するために、SPContext.Current.FormContext.OnSaveHandlerのハンドラーを追加しました。SharePoint Designerを使用してWebパーツを編集フォームと新規フォームに追加し、デフォルトで配置されるDataFormWebPartを非表示(IsVisible = Falseに設定)します。アイテムを編集するときは、すべて正常に機能します。OnSaveHandler関数が呼び出され、SPListItemを更新します。問題は新しいアイテムにあります。DataWebFormPartが表示されていない限り、OnSaveHandler関数は呼び出されません。Webフォームに他の変更を加えることはありませんが、DataFormWebPartの表示を切り替えます。私が間違っていることについて何か考えはありますか?
if (SPContext.Current.FormContext.FormMode == SPControlMode.Edit ||
SPContext.Current.FormContext.FormMode == SPControlMode.New)
{
SPContext.Current.FormContext.OnSaveHandler += FormContext_OnSave;
}
...。
protected void FormContext_OnSave(object sender, EventArgs e)
{
//update the list item
}