Sharepoint 2013- обновление метаданных документа с использованием события itemupdating или itemupdated не работает
Я пытаюсь обновить пользовательские метаданные для документа, когда документ добавляется в библиотеку с помощью события обновления элемента, но он не работает. Пользовательское приложение aspx использует элемент href для указания URL-адреса документа. Если щелкнуть по нему, откроется окно проводника Windows, аналогичное представлению обозревателя OOB sharepoint 2013. Теперь, когда пользователь копирует документ из библиотеки 1(говорит, что живет на сайте 1 в sitecollection1) в библиотеку 2(живет на сайте 2 в sitecollection2) с помощью опции копирования и вставки, мне нужно очистить некоторые метаданные документа. Я пытаюсь предложить Лукаш для этого, но метаданные не очищаются. В режиме отладки, хотя запуск события отключен перед обновлением, я вижу, что обновленное событие вызывается еще раз, что странно. В конце мои метаданные не очищаются. Я пробовал как с обновлением, так и с обновленным событием. Любая идея? вот мой код для обновления:
public override void ItemUpdated(SPItemEventProperties properties)
{
base.ItemUpdated(properties);
ClearNotes(properties);
}
private void ClearNotes(SPItemEventProperties properties)
{
try
{
SPListItem listItem = properties.ListItem;
listItem["Notes1"] = string.Empty;
listItem["ReviewNote"] = null;
base.EventFiringEnabled = false;
listItem.Update();
}
catch (Exception ex)
{
//logging error to db
}
finally
{
base.EventFiringEnabled = true;
}
}
1 ответ
Я думаю, что это должно быть так.EventFiringEnable = false; Не база. ...
Вы также можете сделать это с itemupdating и Afterproperties, тогда вам не нужно отключать EventFiring и не нужно обновлять:
public override void ItemUpdating(SPItemEventProperties properties)
{
base.ItemUpdating(properties);
///...
properties.AfterProperties["Notes1"] = string.Empty;
}