Compartilhar via


_DataDOMEventSink_Event.OnBeforeChange Evento

Definição

Ocorre depois que alterações no documento XML subjacente de um formulário foram feitas, mas antes que as alterações sejam aceitas.

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 

Tipo de evento

Exemplos

No exemplo a seguir, o manipulador de eventos OnBeforeChange é usado para validar os dados em um campo. Se os dados não forem válidos, a ReturnStatus propriedade do DataDOMEventObject objeto será usada para rejeitar as alterações.

[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;
}

No exemplo a seguir, o manipulador de eventos OnBeforeChange é usado para validar os dados em um campo. Se os dados não forem válidos, a ReturnStatus propriedade do DataDOMEventObject objeto será usada para rejeitar as alterações.

[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;
}

Comentários

Esse manipulador de eventos permite que os usuários cancelem uma operação DataDOM.

Durante o evento OnBeforeChange , o documento XML subjacente do formulário é colocado no modo somente leitura. Se a ReturnStatus propriedade do objeto for definida como false, o DataDOMEventObject Microsoft InfoPath rejeitará as alterações feitas e uma caixa de mensagem será exibida para o usuário. Se ocorrer um erro no código do evento OnBeforeChange , o InfoPath rejeitará as alterações e restaurará os dados no estado anterior.

Observação: é melhor evitar alternar exibições durante o evento OnBeforeChange ; as alterações ainda não foram aceitas e a alteração para outra exibição pode resultar em um erro.

Observação: em alguns casos, eventos relacionados a alterações no documento XML subjacente de um formulário podem ocorrer mais de uma vez. Por exemplo, quando os dados existentes são alterados, ocorre uma operação de inserção e exclusão.

Observação: se um erro de validação for encontrado no evento OnBeforeChange , o documento não será carregado. Um bloco try/catch no OnLoad evento pode ser usado para capturar essa falha de validação e carregar o documento apesar do erro.

Aplica-se a