1

背景は次のとおりです。

ドキュメントを含むドキュメントセットがあります。これらのドキュメントには固有のセキュリティがあります。ドキュメントセットの特定のプロパティを変更すると、イベントハンドラーで、それに応じてドキュメントのセキュリティを更新する必要があります。(ほとんどの場合、ドキュメントのセキュリティを変更する別のイベントハンドラーを開始するか、セキュリティを更新する関数を直接呼び出します。)

質問:セキュリティはさておき、ドキュメントセット内のドキュメントにアクセスすることは可能ですか?その場合、どのようにアクセスできますか?つまり、ドキュメントセットから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
}}}

質問が意味をなさない場合は、私を訂正してください。

4

1 に答える 1

1

可能です。Steve Bが上記で指摘しているように、ドキュメントセットをフォルダとして扱う必要があります。この場合のコードの魔法の行は次のとおりです。

SPFileCollection docsinproject = properties.ListItem.Folder.Files;
foreach (SPFile doc in docsinproj) { .... }
于 2013-01-17T14:05:00.173 に答える