0

機能の一部として、いくつかのサイト列/コンテンツ タイプとリスト定義を作成しました。コンテンツ タイプにイベントレシーバーをアタッチしたい。イベント レシーバーをコンテンツ タイプにアタッチするコードを追加しました。spmanager を使用すると、イベント レシーバーがコンテンツ タイプに関連付けられていることがわかりますが、コンテンツ タイプからリストを作成すると、イベント レシーバーがありません。何か案は。私のコードは以下です

  public override void FeatureActivated(SPFeatureReceiverProperties properties)
            {
                string asmName = System.Reflection.Assembly.GetExecutingAssembly().FullName;
                string itemReceiverName = "xxxxxx.Intranet.SP.xxxxx.PermissionsUpdaterEventReceiver";

                ////surely a better way to get all lists than this
                ////re - do
                using (SPSite thisSite = (SPSite)properties.Feature.Parent) {
                    using (SPWeb web = thisSite.RootWeb) {
                        SPContentType RambollNewsContentType = web.ContentTypes["RambollNewsContentType"];
                        RambollNewsContentType.EventReceivers.Add(SPEventReceiverType.ItemAdded, asmName, itemReceiverName);
                        RambollNewsContentType.Update(true);
                    }
                }    
            }
4

2 に答える 2

0

これがあなたの質問に関連しているかどうかはわかりませんが、

コンテンツ タイプをリストに追加する前に、コンテンツ タイプにイベント レシーバーを追加してみてください。

コンテンツ タイプをリストに追加するときに、コンテンツ タイプがリストに直接追加されるのではなく、そのコピーがリストに追加されるため、イベント レシーバーを事前に追加する必要があると思います。そのため、コンテンツ タイプをリストに追加するとき、イベント レシーバーはまだありません。

あなたの質問が間違っていると理解したら、私を訂正してください。

ありがとう

于 2013-03-13T11:41:35.737 に答える