Поделиться через


_DataDOMEventSink_Event.OnBeforeChange Событие

Определение

Происходит после выполнения изменений в базовом XML-документе формы, но до их принятия.

public:
 event Microsoft::Office::Interop::InfoPath::SemiTrust::_DataDOMEventSink_OnBeforeChangeEventHandler ^ OnBeforeChange;
event Microsoft.Office.Interop.InfoPath.SemiTrust._DataDOMEventSink_OnBeforeChangeEventHandler OnBeforeChange;
member this.OnBeforeChange : Microsoft.Office.Interop.InfoPath.SemiTrust._DataDOMEventSink_OnBeforeChangeEventHandler 
Event OnBeforeChange As _DataDOMEventSink_OnBeforeChangeEventHandler 

Тип события

Примеры

В следующем примере обработчик событий OnBeforeChange служит для проверки данных в поле. Если данные недопустимы, ReturnStatus свойство DataDOMEventObject объекта используется для отклонения изменений.

[InfoPathEventHandler(MatchPath="/Customers/Customer/RepVisitDt", EventType=InfoPathEventType.<span class="label">OnBeforeChange</span>)]
public void RepVisitDt_<span class="label">OnBeforeChange</span>(DataDOMEvent e)
{
 IXMLDOMNode phone = thisXDocument.DOM.selectSingleNode    (@"/Customers/CustomerInfo/ContactDates/PhoneContactDt");
 if (phone.text == "")
 {
  e.ReturnMessage = "The Phone Contact Start date must be set prior to the Representative Visit date.";
  e.ReturnStatus = false;
  return;
 }
 // If the data is valid, eventObj.ReturnStatus = true.
 e.ReturnStatus = true;
 return;
}

В следующем примере обработчик событий OnBeforeChange служит для проверки данных в поле. Если данные недопустимы, ReturnStatus свойство DataDOMEventObject объекта используется для отклонения изменений.

[InfoPathEventHandler(MatchPath="/Customers/Customer/RepVisitDt", EventType=InfoPathEventType.<span class="label">OnBeforeChange</span>)]
public void RepVisitDt_<span class="label">OnBeforeChange</span>(DataDOMEvent e)
{
 IXMLDOMNode phone = thisXDocument.DOM.selectSingleNode    (@"/Customers/CustomerInfo/ContactDates/PhoneContactDt");
 if (phone.text == "")
 {
  e.ReturnMessage = "The Phone Contact Start date must be set prior to the Representative Visit date.";
  e.ReturnStatus = false;
  return;
 }
 // If the data is valid, eventObj.ReturnStatus = true.
 e.ReturnStatus = true;
 return;
}

Комментарии

Этот обработчик событий позволяет пользователям отменять операцию DataDOM.

В ходе события OnBeforeChange базовому XML-документу формы назначается режим "только чтение". Если свойству ReturnStatusDataDOMEventObject объекта присвоено значение false, Microsoft InfoPath отклоняет внесенные изменения, а пользователю отображается окно сообщения. Если ошибка возникает в коде для события OnBeforeChange, InfoPath отклоняет изменения и восстанавливает данные в их предыдущем состоянии.

Примечание. Рекомендуется избегать переключения представлений во время события OnBeforeChange . Изменения еще не приняты, и переключение на другое представление может привести к ошибке.

Примечание. В некоторых случаях события, связанные с изменениями в базовом XML-документе формы, могут происходить несколько раз. Например, при изменении существующих данных выполняются операции вставки и удаления.

Примечание. Если в событии OnBeforeChange возникает ошибка проверки, документ не загружается. Блок try/catch в событии OnLoad можно использовать для перехвата этой ошибки проверки и загрузки документа, несмотря на ошибку.

Применяется к