Так что я пытаюсь выполнить такую функциональность на моем SharePoint 2010 список:Получить SharePoint ListItem-х до и после свойства в Event Receiver
У меня есть поле выбора типа в моем списке, который имеет 7 значений и я хочу, чтобы пользователи не могли изменить значение этого поля со значений 2,3,4,5,6,7 до значения 1.
Я написал приемник событий для этого списка, вот мой код:
public override void ItemUpdated(SPItemEventProperties properties)
{
base.ItemUpdated(properties);
string beforeStatus = properties.BeforeProperties["Status"].ToString();
string afterStatus = properties.AfterProperties["Status"].ToString();
if (beforeStatus != "1stValue" && afterStatus == "1stValue")
{
properties.Cancel = true;
properties.ErrorMessage = "This isn't allowed.";
}
}
Я попытался использовать как ItemUpdated
и ItemUpdating
накануне nt, когда я был отлажен, я увидел, что приемник событий получил так, как должно быть, но beforeStatus
и afterStatus
получает null
от предмета в обоих случаях.
Итак, как я могу получить значения поля элемента до и после обновления правильно? Заранее спасибо!
Примечание: внутренние и отображаемые названия полей являются Status
.
Я нашел ту же статью и решил эту всего пару минут, прежде чем (см мой ответ): D Спасибо, так или иначе! –
И может ли он каким-либо образом оповестить какое-либо сообщение пользователю и вернуться в форму редактирования без сохранения? :) –
О, и еще одно: если пользователь редактирует какое-то другое поле, чтобы он не обновлялся? Итак, мне нужно добавить 'properties.AfterProperties [" Status "] = beforeStatus;' в мой код и ничего не отменить? –