Я пытаюсь создать событие ItemUpdating, которое проверяет некоторые потенциальные проблемы в нескольких списках.Однако, похоже, что событие элемента вообще не запускается, даже отладка вызова ItemUpdating (..) не работает, как если бы метод никогда не вызывался.
Код события:
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";
}
}
}
}
}
Если я отлаживаю "public override void 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.