我有一个事件接收器,在文件夹(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
}
有可能这样做吗?如果是这样,有什么想法吗?
答案 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
}