1

SharePoint Server 2010 にドキュメント ライブラリがあり、フォルダーが作成されるたびにサブフォルダーを作成したいのですが、コード スニペットがありますが、機能していません。デバッグしようとしましたが、イベントも発生しません。私にお願いします。ここに私のコードがあります:

public class EventReceiver1 : SPItemEventReceiver
{
    /// <summary>
    /// An item was added.
    /// </summary>
    private string[] subFolders = new string[] { "sub-folder1", "sub-folder2", "sub  folder3" };
    public override void ItemAdded(SPItemEventProperties properties)
    {
        base.ItemAdded(properties);
        SPWeb web = properties.OpenWeb();
        SPDocumentLibrary ProductsLibrary = (SPDocumentLibrary)web.Lists[properties.ListId];
        if (properties.ListItem.ContentType.Name.ToLower() == "new content type" && properties.ListItem.Folder.ParentFolder.ToString() == ProductsLibrary.RootFolder.ToString())
        {
            string Url = properties.ListItem.ParentList.RootFolder.ServerRelativeUrl.ToString();
            SPFolder libFolder = ProductsLibrary.RootFolder.SubFolders[properties.ListItem.Name];
            string newFolderUrl = (web.Url + "/" + libFolder.ToString());
            foreach (string subfolder in subFolders)
            {
                SPListItem newSubFolder = ProductsLibrary.Items.Add(newFolderUrl, SPFileSystemObjectType.Folder, subfolder);
                newSubFolder.Update();
            }
        }
    }
}

ありがとうございました

4

2 に答える 2

0

解決策は、elements.xmlを開き、をに置き換えることです。コードは完全に実行されます。

于 2012-04-30T13:20:33.980 に答える
0

確実に

  1. このイベントレシーバーを機能の一部として追加しました
  2. このイベントレシーバーを含む機能がアクティブ化されます

上記の手順に従わなかった場合、イベントは発生しません

于 2012-05-16T10:18:11.577 に答える