몇 가지 목록에서 잠재적 인 문제를 확인하는 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 메서드를 제외하고는 제대로 작동합니다.
당신이 당신의 배치 elements.xml을 확인할 수 있습니다 및 확인이 $ SharePoint.Project.AssemblyFullName $ 은 실제로 귀하의 어셈블리를 보여줍니까? –
[http://spm.codeplex.com] (http://spm.codeplex.com/)을 사용하여 SP에 올바르게 배포되었는지 확인할 수 있습니다 – MishaU