是否可以从具有不同属性的事件接收器调用事件接收器?

时间:2013-01-17 17:04:00

标签: sharepoint-2010 event-receiver eventreceiver

我有一个事件接收器,在文件夹(docset)上的元数据更新时运行。在同一个事件接收器中,我想为文件夹中的每个文件启动一个事件接收器。我想知道的是:是否可以使用与给定的SPitemEventProperties不同的SPitemEventProperties调用事件接收器。

e.g。

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
}

有可能这样做吗?如果是这样,有什么想法吗?

2 个答案:

答案 0 :(得分:1)

简答:没有。可能有一种真正的hacky方式,但没有明显的解决方案。

对于我的特定情况,设置环境更容易,因此文档继承了更改的元数据,因此当此列发生更改时,事件接收器将触发。 希望它能帮助将来的其他人,或者如果没有其他人读到这一点,也可以帮助我自己的记录。

答案 1 :(得分:0)

您可以在每个文档文件夹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
 }