SharePoint中的Feature(二)

 
3. 创建Feature——Event Handler
      
      
      
      
    接下来的例子用于说明如何创建一个Event Handler。在Site或是Site collection注册Event Handlers,可以使你很容易的执行有选择的(筛选)回应list item事件。如当某个用户要删除List中的某一个Item,你想在执行删除之前,执行一些进行验证或是其他动作,那么就可以采用Event Handler Feature。其创建过程如下:
      
      
    Step 1:打开Visual Studio,创建一个工程类型为Class Libraryc#工程,名字暂为DeletingEventHandler
      
      
    Step 2:在工程中添加引用:Microsoft.SharePoint并添加命名空间:
      
      
using Microsoft.SharePoint;
      
      
    Step 3:修改类名为DeletingAction并使它继承自SPItemEventReceiver添加一个重载方法ItemDeleting。如下所示:
    public class DeletingAction : SPItemEventReceiver
    
    
     {
    
    
          public override void ItemDeleting(SPItemEventProperties properties)
    
    
      {
    
    
            properties.Cancel = true;
    
    
            properties.ErrorMessage = "Deleting items from " + properties.RelativeWebUrl + " is not supported.";
    
    
}
}
    Step 4:生成强名称。在工程 Properties对话框中, 点击 Signing 标签, 选择 Sign the asembly, 然后选择 Choose a strong name key file, 点击 <New…>.
      
      
    Step 5:Build工程。将生成的Dll放到Local_Drive:/WINDOWS/assembly中。
      
      
    Step 6:接下来就要设置Feature了,如前面一节所示,在FEATURES目录下创建一个文件夹DeletingEventHandler。并在这个文件夹下创建一个Feature.xml文件,将Scope设置为Web site如下所示,不要忘记的是创建一个GUID(如何创建GUID?请看前一节),并取代下面示例中的Id
      
      
       <Feature Scope="Web" 
   
   
           Title="Deleting Event Handler" 
   
   
            Id="GUID" 
   
   
            xmlns="http://schemas.microsoft.com/sharepoint/">
   
   
       <ElementManifests>
   
   
                    <ElementManifest Location="Elements.xml"/>
   
   
          </ElementManifests>
   
   
          </Feature>
   
   
    Step 7:DeletingEventHandler目录下,再创建一个Elements.xml文件,如下所示,其中<Receivers ListTemplateId="104">表示该Event Handler应用到所有的Web siteannouncements listPublicKeyToken可以在GAC中查看DeletingEventHandler.dll的属性。
        <Elements xmlns="http://schemas.microsoft.com/sharepoint/">
   
   
          <Receivers ListTemplateId="104">
   
   
          <Receiver>
   
   
          <Name>DeletingEventHandler</Name>
   
   
          <Type>ItemDeleting</Type>
   
   
          <SequenceNumber>10000</SequenceNumber>
   
   
 <Assembly>DeletingEventHandler, Version=1.0.0.0, Culture=neutral, PublicKeyToken=a26b5449ac4a4cf3</Assembly>
   
   
          <Class>DeletingEventHandler.DeletingAction</Class>
   
   
          <Data></Data>
   
   
          <Filter></Filter>
   
   
          </Receiver>
   
   
          </Receivers>
   
   
          </Elements>
   
   
    Step 8:最后就是安装、激活Feature
    stsadm -o installfeature -filename DeletingEventHandler/feature.xml

  
  
   
    
  
  
stsadm -o activatefeature -filename DeletingEventHandler /feature.xml -url http://Server/Site/Subsite

  
  
   
    
  
  
iisreset
现在再去删除http://Server/Site/Subsite announcements list中的Item,你会发现,已经不能删除,取而代之的是一句错误提示。
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值