У меня есть список SharePoint, в котором я регистрирую настраиваемый приемник событий ItemUpdating, но я наблюдаю очень странное поведение в этом решении. Это происходит, если я добавляю в приемник событий какой-либо код, кроме base.ItemUpdating.
Что происходит, если я отлаживаю приемник событий, я вижу эти свойства. AfterProperties содержит все значения, введенные в поле и свойства. ListItem имеет исходный элемент. Но как только ER завершает работу и страница перезагружается, ничего не сохраняется, а просто возвращается к тому, что было до того, как я изменил значения. Еще более странно, если я пойду и вручную установлю свойства after, аналогичные приведенным ниже, он работает, и обновления сохраняются правильно. Таким образом, приемник событий возлагает на меня ответственность за внесение любых изменений в элемент, но это не нормальное поведение для ItemUpdating. Кто-нибудь знает, что может вызвать это?
public override void ItemUpdating(SPItemEventProperties properties)
{
var recurringBefore = properties.ListItem.TryGetValue<bool>(Constants.CommonFields.Recurring_STATIC);
var recurringAfter = Convert.ToBoolean(properties.AfterProperties[Constants.CommonFields.Recurring_STATIC]);
//This loop is the horrible fix I have done to manually update the relevant fields but this shouldn't be necessary
var item = properties.ListItem;
foreach (SPField key in item.Fields)
{
if (item[key.InternalName] != properties.AfterProperties[key.InternalName] && key.CanBeDisplayedInEditForm && properties.AfterProperties[key.InternalName] != null)
{
//looping through and setting the AfterProperties to what they already are makes them save? If I don't do this nothing saves
properties.AfterProperties[key.InternalName] = properties.AfterProperties[key.InternalName].ToString();
}
}
if (!recurringBefore && recurringAfter &&
currWfStatus == Constants.WorkflowStatus.Processed)
{
//do some stuff
}
base.ItemUpdating(properties);
}
base.ItemUpdating(properties)
в начале переопределения функции, а не в конце? - person Thriggle   schedule 17.08.2016