【问题标题】:is it possible to call an event receiver from an event receiver with different properties?是否可以从具有不同属性的事件接收器调用事件接收器?
【发布时间】:2013-01-01 07:10:10
【问题描述】:
我有一个事件接收器,它在更新文件夹(文档集)上的元数据时运行。在同一个事件接收器中,我想为文件夹中的每个文档启动一个事件接收器。我想知道的是:是否可以使用与给定不同的 SPitemEventProperties 调用事件接收器。
例如
public override void ItemUpdated (SPItemEventProperties properties) {
// when properties is/contains a folder:
// on each document in the folder
// run ItemUpdated where properties is a/contains a document
}
可以这样做吗?如果有,有什么想法吗?
【问题讨论】:
标签:
sharepoint-2010
event-receiver
eventreceiver
【解决方案1】:
简短的回答:不。可能有一种非常老套的方法,但没有明显的解决方案。
对于我的特殊情况,设置环境更容易,因此文档会继承不断变化的元数据,因此当此列更改时会触发事件接收器。
希望它在未来对其他人有所帮助,或者如果没有其他人阅读此内容,请作为我自己的记录。
【解决方案2】:
您可以在每个文档文件夹 ItemUpdatedER 上调用 SPListItem.Update()。这个运行文档EventReceiver。
public override void ItemUpdated (SPItemEventProperties properties) {
query all sub items/documents
on each document change your data:
item["customField"] = "update value";
item.Update() //call recursively ItemUpdating/ItemUpdate
}