_DataDOMEventSink_Event.OnBeforeChange Evento
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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.