以下是我必须记录项目工作流程状态更新/更改日期的代码。我在列表中创建了名为Completed Date的accustom列作为Date类型以显示日期。
工作流程部署正常,但不会在“完成日期列”下呈现任何数据。我错过了什么吗?
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();
}
}
}
}
答案 0 :(得分:0)
在ItemUpdating
方法中,您应该使用
properties.AfterProperties[Completed_x0020_Date] = newFieldValue;
//AfterProperties and BeforeProperties are using internal names of columns.
那么,如果您的if语句被访问过,那么还有问题吗?因为调用ListItem.Update()
最有可能导致在此事件接收器上进行递归调用。