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



我有一个事件接收器,当文件夹(docset)上的元数据更新时运行。在同一个事件接收器中,我想为文件夹中的每个文档运行一个事件接收器。我想知道的是:是否有可能使用不同的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
}

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

简短的回答:不。可能有一种非常简单的方法可以做到这一点,但没有明显的解决方案。

对于我的特殊情况,更容易设置环境,以便文档继承不断变化的元数据,以便在该列更改时触发事件接收器。希望它能在未来帮助到其他人,或者如果没有人读到这篇文章,我自己的记录。

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

最新更新