在 SharePoint 中,当项目首次添加到文档库时,它会按预期触发 ItemAdded 和 ItemAdding 事件。如果您上传相同的文件名来更新现有文件,它将触发 ItemUpdated 和 ItemUpdating 事件,同样与预期相同。然而,我一直未能确定这种行为是否确实发生过。或者,更具体地说,我完全无法区分以下内容:

  • 由于有人上传了新文件但未对任何表单字段执行任何操作,因此项目已更新。
  • 由于有人点击“确定”但未对任何表单字段执行任何操作,因此项目已更新。

实际上有办法区分这些类型的更新吗?事件属性中似乎没有任何内容包含此信息,列表项和文件本身的版本历史记录中似乎也没有任何内容。我什至尝试通过 OpenBinary() 比较文件本身,但在上述两种情况下我仍然得到相同的结果。预先感谢您的任何帮助!

有帮助吗?

解决方案

两年多前我也经历过同样的问题。我实现它的方法是查看两种事件类型的 before 和 after 属性中的所有字段,并且一些更模糊的字段根据事件类型而有所不同。

不幸的是,我无法再访问该代码,因此我无法为您提供该字段的名称。只需转储所有之前和之后的属性并尝试一下即可。

痛苦,你会认为还有更简单的方法。我曾希望在第一次上传期间,Before Properties 将为 null 或为空,但没有这样的运气。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top