【问题标题】:How do I create an event receiver for a single list that is based on a custom content type?如何为基于自定义内容类型的单个列表创建事件接收器?
【发布时间】:2011-09-14 17:48:08
【问题描述】:

我正在尝试为我创建的名为 Questions 的列表创建一个事件接收器。

添加新问题时,我希望触发一个事件。我已经研究过了,所以我知道我需要创建一个事件接收器并使用 ItemAdded 方法。

如何将它绑定到列表的一个实例以及在创建接收器时为 Source 类型选择什么?我没有some blog posts suggest.中的“自定义列表”选项@

希望有人能帮忙..

【问题讨论】:

    标签: sharepoint sharepoint-2010 event-receiver


    【解决方案1】:

    我认为这可能是您所追求的:(http://msdn.microsoft.com/en-us/library/ff407249.aspx)

    using (SPSite site = new SPSite("http://localhost")) 
    {
        using (SPWeb web = site.OpenWeb())
        {
            SPList list = web.Lists["Shared Documents"];
    
            SPEventReceiverDefinition def = list.EventReceivers.Add();
    
            def.Assembly = "ERDefinition, Version=1.0.0.0, Culture=Neutral, PublicKeyToken=704f58d28567dc00";
            def.Class = "ERDefinition.ItemEvents";
            def.Name = "ItemAdded Event";
            def.Type = SPEventReceiverType.ItemAdded;
            def.SequenceNumber = 1000;
            def.Synchronization = SPEventReceiverSynchronization.Synchronous;
            def.Update();
        }
    }
    

    问候,

    乔尔

    --

    http://joelblogs.co.uk

    @joelblogs

    【讨论】:

    • 如果您的事件接收器包含两种用于 itemadded 和 item updated 的方法,我如何告诉它它有两种类型(def.Type 只接受一个值)我是否必须调用 EventReceivers.Add 代码两次?也不知道如何获取程序集信息?
    • 您需要为每个事件调用 EventReceivers.Add()。所以在这里两次,是的。
    • 当事件接收器与特性在同一个项目中时,如何找到程序集信息?
    【解决方案2】:

    如果您不想使用代码,请尝试SP EventHandler Manager

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-08
      • 1970-01-01
      • 1970-01-01
      • 2013-02-26
      • 2015-12-11
      • 1970-01-01
      相关资源
      最近更新 更多