_DataDOMEventSink_Event.OnBeforeChange Événement

Définition

Se produit une fois que des modifications ont été effectuées dans le document XML sous-jacent d'un formulaire mais avant l'acceptation de ces modifications.

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 

Type d'événement

Exemples

Dans l'exemple suivant, le gestionnaire d'événements OnBeforeChange est utilisé pour valider les données d'un champ. Si les données ne sont pas valides, la ReturnStatus propriété de l’objet DataDOMEventObject est utilisée pour rejeter les modifications.

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

Dans l'exemple suivant, le gestionnaire d'événements OnBeforeChange est utilisé pour valider les données d'un champ. Si les données ne sont pas valides, la ReturnStatus propriété de l’objet DataDOMEventObject est utilisée pour rejeter les modifications.

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

Remarques

Ce gestionnaire d'événements permet aux utilisateurs d'annuler une opération DataDOM.

Pendant l'événement OnBeforeChange, le document XML sous-jacent du formulaire est mis en mode lecture seule. Si la ReturnStatus propriété de l’objet a la DataDOMEventObject valeur false, Microsoft InfoPath rejette les modifications apportées et une boîte de message s’affiche à l’utilisateur. Si une erreur se produit dans le code de l'événement OnBeforeChange, InfoPath rejette les modifications et rétablit l'état précédent des données.

Remarque : Il est préférable d’éviter de changer d’affichage pendant l’événement OnBeforeChange . les modifications n’ont pas encore été acceptées, et le passage à une autre vue peut entraîner une erreur.

Remarque : Dans certains cas, les événements liés aux modifications apportées au document XML sous-jacent d’un formulaire peuvent se produire plusieurs fois. Par exemple, lorsque des données existantes sont modifiées, une opération d'insertion et de suppression se produit.

Remarque : si une erreur de validation est rencontrée dans l’événement OnBeforeChange , le chargement du document échoue. Un bloc try/catch dans l’événement OnLoad peut être utilisé pour intercepter cet échec de validation et charger le document en dépit de l’erreur.

S’applique à