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方法外,該功能中的其他功能都可以正常工作。
您可以檢查部署elements.xml中,並確保 $ SharePoint.Project.AssemblyFullName $ 實際上顯示您的程序集? –
您可以使用[http://spm.codeplex.com](http://spm.codeplex.com/)並檢查,是否正確部署在SP – MishaU