Partager via


_DataDOMEventSink_Event.OnBeforeChange, événement

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.

Espace de noms : Microsoft.Office.Interop.InfoPath.SemiTrust
Assembly : Microsoft.Office.Interop.InfoPath.SemiTrust (dans microsoft.office.interop.infopath.semitrust.dll)

Syntaxe

Event OnBeforeChange As _DataDOMEventSink_OnBeforeChangeEventHandler

Dim instance As _DataDOMEventSink_Event
Dim handler As _DataDOMEventSink_OnBeforeChangeEventHandler

AddHandler instance.OnBeforeChange, handler
event _DataDOMEventSink_OnBeforeChangeEventHandler OnBeforeChange

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 propriété ReturnStatus de l'objet DataDOMEventObject est définie sur false, Microsoft Office InfoPath 2007 rejette les modifications apportées et une boîte de message s'affiche. 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 de vue pendant l'événement OnBeforeChange ; les modifications n'ont pas encore été acceptées et le changement de vue risque de provoquer une erreur.

Remarque

Dans certains cas, les événements liés aux modifications dans le 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 l'événement OnBeforeChange rencontre une erreur de validation, le document ne se charge pas. Vous pouvez utiliser un bloc try/catch dans l'événement OnLoad pour intercepter cette erreur de validation et charger le document malgré tout.

Exemple

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 propriété ReturnStatus de l'objet DataDOMEventObject est utilisée pour rejeter les modifications.

[InfoPathEventHandler(MatchPath="/Customers/Customer/RepVisitDt", EventType=InfoPathEventType.OnBeforeChange)]
public void RepVisitDt_OnBeforeChange(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;
}

Voir aussi

Référence

_DataDOMEventSink_Event, interface
Membres _DataDOMEventSink_Event
Microsoft.Office.Interop.InfoPath.SemiTrust, espace de noms