_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