Sharepoint EventHandler使用总结

Sharepoint EventHandler使用总结

SharePointEventHandler主要有Web LevelList LevelList Item LevelEmail几种。SharePointevent handler主要是继承SPWebEventReceiver, SPEmailEventReceiver, SPListEventReceiverSPItemEventReceiver类去实现其中相应的方法来完成我们的需求。SharePointEventHandler主要能够实现的功能是通过在sharepoint中进行不同的操作会触发相应的EventHandler,然后进去我们的重写的Handle程序,完成相关的操作。下面介绍一下在sharepoint中添加和部署Event Handler的主要步骤:

1.     Event Handler的工程的创建,我们需要创建一个我们自己的工程并且集成sharepoint提供的event handler类,并且重写相应的方法,并且要对这个工程进行强命名,由于Eventhandler需要添加到GAC中,所以这个工程需要强命名。

2.     部署Event Handler,主要有两种方法,一是我们使用sharepoint提供的自定义Feature去添加这个EventHandler,二是使用程序添加EventHandler,两者的效果是一样的,所以可以根据自身的条件和需求来选择使用哪种方式来部署Event Handler

3.       通过一个实例介绍Event Handler的开发和部署流程(使用SharePoint自定义Feature对其进行部署):

(1)   我们添加一个List LevelEventHandler,这个EventHandler主要是对SharePointListField进行Monitor,并完成相应的操作。

(2)   其部署的xml文件如下:

<Elements xmlns="http://schemas.microsoft.com/sharepoint/">

- <Receivers ListTemplateId="11111">

- <Receiver>

  <Name>FieldAddedEventHandler</Name>

  <Type>FieldAdded</Type>

  <SequenceNumber>10000</SequenceNumber>

  <Assembly>Test,Version=1.0.0.0,Culture=neutral,PublicKeyToken=14238cf1401b271e</Assembly>

  <Class>FieldAdd </Class>

  </Receiver>

- <Receiver>

  <Name>FieldAddingEventHandler</Name>

  <Type>FieldAdding</Type>

  <SequenceNumber>10000</SequenceNumber>

  <Assembly>Test,Version=1.0.0.0,Culture=neutral,PublicKeyToken=14238cf1401b271e</Assembly>

  <Class>FieldAdding</Class>

  </Receiver>

- <Receiver>

  <Name>FieldDeletedEventHandler</Name>

  <Type>FieldDeleted</Type>

 <SequenceNumber>10000</SequenceNumber>

  <Assembly>Test,Version=1.0.0.0,Culture=neutral,PublicKeyToken=14238cf1401b271e</Assembly>

  <Class>FieldDeleted </Class>

  </Receiver>

- <Receiver>

  <Name>FieldDeletingEventHandler</Name>

  <Type>FieldDeleting</Type>

  <SequenceNumber>10000</SequenceNumber>

  <Assembly>Test,Version=1.0.0.0,Culture=neutral,PublicKeyToken=14238cf1401b271e</Assembly>

  <Class>FieldDeleting </Class>

  </Receiver>

- <Receiver>

  <Name>FieldUpdatedEventHandler</Name>

  <Type>FieldUpdated</Type>

  <SequenceNumber>10000</SequenceNumber>

  <Assembly>Test,Version=1.0.0.0,Culture=neutral,PublicKeyToken=14238cf1401b271e</Assembly>

  <Class>FieldUpdated </Class>

  </Receiver>

- <Receiver>

  <Name>FieldUpdatingEventHandler</Name>

  <Type>FieldUpdating</Type>

  <SequenceNumber>10000</SequenceNumber>

  <Assembly>Test,Version=1.0.0.0,Culture=neutral,PublicKeyToken=14238cf1401b271e</Assembly>

  <Class>FieldUpdating</Class>

  </Receiver>

</Elements>

 

(1)     下面是这个Event Handler的后台code(ListEventHandler.cs):

class ListEventHandler:SPListEventReceiver

    {

        public override void FieldAdded(SPListEventProperties properties)

        {

            base.FieldAdded(properties);

            // todo:

        }

 

        public override void FieldDeleted(SPListEventProperties properties)

        {

            base.FieldDeleted(properties);

// todo:

 

        }

 

        public override void FieldUpdated(SPListEventProperties properties)

        {

            base.FieldUpdated(properties);

            // todo:

        }

 

        public override void FieldAdding(SPListEventProperties properties)

        {

            base.FieldAdding(properties);

            // todo:

        }

 

        public override void FieldDeleting(SPListEventProperties properties)

        {

            base.FieldDeleting(properties);

            // todo:

        }

 

        public override void FieldUpdating(SPListEventProperties properties)

        {

            base.FieldUpdating(properties);

            // todo:

        }

        

}

 

(1)    xml文件部署到sharepointFeatures文件夹下,同时将我们工程生成的dll添加到GAC中,然后我们可以指定在那个scope上激活这自定义的Feature,也就是将EventHandler安装到哪个Site或者是Web上。

 

以上就实现了对SharePoint List Event Handler的开发和部署,同时我们还可以对Web LevelItem LevelEmailEvent Handler进行开发和部署,具体的步骤都是一样的。

Update事件在接受处理程序的特殊性时,要被调用很多次,有时会达不到我们想要的效果,需要使用this.DisableEventFiring() 来关闭这个事件监听器,在更新完成之后使用this.EnableEventFiring() 来开启事件监听。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值