0

これは、アイテムのワークフローステータスが更新/変更された日付を記録する必要があるコードです。日付を表示するために、リストに日付タイプとして完了日という名前のカスタム列を作成しました。

ワークフローは正常にデプロイされますが、[完了日]列の下にデータはレンダリングされません。私は何かが足りないのですか?

namespace WorkflowDateRecorder.EventReceiver1
{
/// <summary>
/// List Item Events
/// </summary>
public class EventReceiver1 : SPItemEventReceiver
{
   /// <summary>
   /// An item is being updated.
   /// </summary>
   public override void ItemUpdating(SPItemEventProperties properties)
   {
       base.ItemUpdating(properties);
       if (properties.BeforeProperties["Wokflowstatus"] != properties.AfterProperties["Wokflowstatus"])
       {
           properties.ListItem["Completed Date"] = DateTime.Now;
           properties.ListItem.Update();
           properties.Web.Update();
       }
   }


}

}

4

1 に答える 1

0

メソッドではItemUpdating、次を使用して新しいフィールド値を設定する必要があります

properties.AfterProperties[Completed_x0020_Date] = newFieldValue;
//AfterProperties and BeforeProperties are using internal names of columns.

また、質問は、if ステートメントにアクセスしたことがあるかどうかです。呼び出しListItem.Update()を行うと、このイベント レシーバーで再帰呼び出しが発生する可能性があります。

于 2012-11-19T22:53:49.567 に答える