2011-10-11 6 views
0

몇 가지 목록에서 잠재적 인 문제를 확인하는 ItemUpdating 이벤트를 만들려고합니다. 그러나 Item 이벤트가 전혀 트리거되지 않는 것 같아서 ItemUpdating (..)에 대한 호출을 디버깅하는 경우에도 작동하지 않습니다. 마치 메소드가 호출되지 않는 것처럼 보입니다.SharePoint 2010 항목 업데이트 이벤트

이벤트 코드 : 목록 -이 오히려 "내 목록"또는 아닌 업데이트 할 때

namespace MyEvent.EventReceiver1 
{ 
    public class EventReceiver1 : SPItemEventReceiver 
    { 
     public override void ItemUpdating(SPItemEventProperties properties) 
     { 

      base.ItemUpdating(properties); 

      // ... my code testing column BeforeProperties vs AfterProperties 
      if (properties.ListTitle == "My List") 
      { 

       if (properties.BeforeProperties["some field"] != properties.AfterProperties["some field"]) 
       { 
        properties.Cancel = true; 
        properties.ErrorMessage = "Please do not alter some field in my list"; 
       } 
      } 
     } 
    } 
} 

내가 디버깅하는 경우 "공공 재정의 무효 ItemUpdating는()"는 발사하지 않았다. 따라서 "내 목록"이 항목을 업데이트하더라도 내 검사는 실행되지 않습니다.

내 elements.xml :이 이벤트 수신기가 아주 조금 더 복잡한 현실이다

<?xml version="1.0" encoding="utf-8"?> 
<Elements xmlns="http://schemas.microsoft.com/sharepoint/"> 
    <Receivers ListTemplateId="100"> 
     <Receiver> 
     <Name>EventReceiver1ItemUpdating</Name> 
     <Type>ItemUpdating</Type> 
     <Assembly>$SharePoint.Project.AssemblyFullName$</Assembly> 
     <Class>MyEvent.EventReceiver1.EventReceiver1</Class> 
     <SequenceNumber>10000</SequenceNumber> 
     </Receiver> 
    </Receivers> 
</Elements> 

주 .. 그것은 일부 공정에 대한 심층적 인 기능을 가진 여러 가지 이벤트를 발생시킵니다. 이 기능의 다른 모든 기능은 위의 ItemUpdating 및 ItemDeleting 메서드를 제외하고는 제대로 작동합니다.

+0

당신이 당신의 배치 elements.xml을 확인할 수 있습니다 및 확인이 $ SharePoint.Project.AssemblyFullName $은 실제로 귀하의 어셈블리를 보여줍니까? –

+0

[http://spm.codeplex.com] (http://spm.codeplex.com/)을 사용하여 SP에 올바르게 배포되었는지 확인할 수 있습니다 – MishaU

답변

0

"내 목록"은 기본 사용자 지정 목록을 사용하여 만들어 졌습니까? Receivers 요소가 ListTemplateId="100"으로 정의 된 경우 이벤트 수신기는 이러한 유형의 목록 만 처리합니다. 이벤트 수신자를 테스트하려면 새 사용자 정의 목록을 작성하고 항목을 업데이트 할 때 이벤트가 실행되는지 확인하십시오. 이 이벤트 수신기가 하나 개의 특정 목록을위한 것입니다 경우

, 당신은 당신의 요소 정의를 변경할 수 있습니다 :

<?xml version="1.0" encoding="utf-8"?> 
<Elements xmlns="http://schemas.microsoft.com/sharepoint/"> 
    <Receivers ListUrl="Lists/MyListUrl"> 
     <Receiver> 
     <Name>EventReceiver1ItemUpdating</Name> 
     <Type>ItemUpdating</Type> 
     <Assembly>$SharePoint.Project.AssemblyFullName$</Assembly> 
     <Class>MyEvent.EventReceiver1.EventReceiver1</Class> 
     <SequenceNumber>10000</SequenceNumber> 
     </Receiver> 
    </Receivers> 
</Elements> 
관련 문제