3

フォルダー (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
}

これを行うことは可能ですか?もしそうなら、何かアイデアはありますか?

4

2 に答える 2

1

簡単な答え: いいえ。それを行うための本当にハックな方法があるかもしれませんが、明らかな解決策はありません。

私の特定の状況では、この列が変更されたときにイベントレシーバーが起動するように、ドキュメントが変更されたメタデータを継承するように環境をセットアップする方が簡単でした。将来、誰かの役に立てば幸いです。他の誰もこれを読んでいない場合は、自分の記録のために。

于 2013-01-21T15:03:11.317 に答える
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
 }
于 2015-02-13T08:47:36.843 に答える