以下是背景资料:
有一个包含文档的docset。这些文件具有独特的证券。 当我更改docset的某个属性时,在事件处理程序中我希望文档相应地更新其安全性。 (最有可能通过启动另一个更改文档安全性的事件处理程序,或直接调用更新安全性的函数。)
问题:除了安全性,是否有可能,如果是这样,如何访问docset中的文档?即从docset作为SPItemEventProperties。
示例: 我希望它看起来像......
public override void ItemUpdated(SPItemEventProperties properties)
{
//... other stuff
string oldDiv = Convert.ToString(properties.BeforeProperties["Division"]);
string newDiv = Convert.ToString(properties.AfterProperties["Division"]);
if (oldDiv != newDiv)
{
try
{
// update each document (that has security "My Division Team")
foreach (documentx in properties.listitem.????) {
if (documentx.securitylevel == "my division team") {
updatesecurity(documentx); // this is my own custom function
}}}
如果问题没有意义,请纠正我。
答案 0 :(得分:1)
有可能。正如史蒂夫B指出的那样,它需要将docset视为文件夹。在这种情况下,神奇的代码行是:
SPFileCollection docsinproject = properties.ListItem.Folder.Files;
foreach (SPFile doc in docsinproj) { .... }