Partager via


_DataDOMEventSink_Event.OnValidate, événement

Se produit après l'acceptation des modifications effectuées dans le document XML sous-jacent d'un formulaire mais avant l'événement OnAfterChange.

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

Syntaxe

Event OnValidate As _DataDOMEventSink_OnValidateEventHandler

Dim instance As _DataDOMEventSink_Event
Dim handler As _DataDOMEventSink_OnValidateEventHandler

AddHandler instance.OnValidate, handler
event _DataDOMEventSink_OnValidateEventHandler OnValidate

Remarques

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

Pendant l'événement OnValidate, le document XML sous-jacent du formulaire est mis en mode lecture seule.

L'événement OnValidate est généralement utilisé pour la gestion des erreurs et l'utilisation de la collection ErrorsCollection (par exemple, ajout de nouvelles erreurs ou suppression d'erreurs existantes).

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.

Exemple

Dans l'exemple suivant, la propriété Site de l'objet DataDOMEventObject est utilisée pour vérifier la valeur du nœud. Si la validation des données échoue, la méthode ReportError est utilisée pour créer une erreur personnalisée :

[InfoPathEventHandler(MatchPath="/my:myFields/my:field1", EventType=InfoPathEventType.OnValidate)]
public void field1_OnValidate(DataDOMEvent e)
{
 if (int.Parse(e.Site.text) > 50)
 {
  e.ReportError(
   e.Site, 
   "Invalid quantity. The total number of each type of block cannot exceed 50.", 
   false,
   "",
   2,
   "modeless");
 }

 if (int.Parse(e.Site.text) < 0)
 {
  e.ReportError(
   e.Site, 
   "Invalid quantity. The total number of each type of block cannot be less than 0.", 
   false,
   "",
   2,
   "modeless");
 }
}

Voir aussi

Référence

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