_DataDOMEventSink_Event.OnValidate Événement

Définition

Se produit après que les modifications apportées au document XML sous-jacent d’un formulaire ont été acceptées, mais avant que l’événement OnAfterChange ne se produise.

public:
 event Microsoft::Office::Interop::InfoPath::SemiTrust::_DataDOMEventSink_OnValidateEventHandler ^ OnValidate;
event Microsoft.Office.Interop.InfoPath.SemiTrust._DataDOMEventSink_OnValidateEventHandler OnValidate;
member this.OnValidate : Microsoft.Office.Interop.InfoPath.SemiTrust._DataDOMEventSink_OnValidateEventHandler 
Event OnValidate As _DataDOMEventSink_OnValidateEventHandler 

Type d'événement

Exemples

Dans l’exemple suivant, la Site propriété de l’objet DataDOMEventObject est utilisée pour case activée la valeur du nœud. Si la validation des données échoue, la ReportError(Object, String, Boolean, String, Int32, String) méthode est utilisée pour créer une erreur personnalisée :

[InfoPathEventHandler(MatchPath="/my:myFields/my:field1", EventType=InfoPathEventType.<span class="label">OnValidate</span>)]
public void field1_<span class="label">OnValidate</span>(DataDOMEvent e)
{
 if (int.Parse(e.Site.text) &gt; 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) &lt; 0)
 {
  e.ReportError(
   e.Site, 
   "Invalid quantity. The total number of each type of block cannot be less than 0.", 
   false,
   "",
   2,
   "modeless");
 }
}

Dans l’exemple suivant, la Site propriété de l’objet DataDOMEventObject est utilisée pour case activée la valeur du nœud. Si la validation des données échoue, la ReportError(Object, String, Boolean, String, Int32, String) méthode est utilisée pour créer une erreur personnalisée :

[InfoPathEventHandler(MatchPath="/my:myFields/my:field1", EventType=InfoPathEventType.<span class="label">OnValidate</span>)]
public void field1_<span class="label">OnValidate</span>(DataDOMEvent e)
{
 if (int.Parse(e.Site.text) &gt; 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) &lt; 0)
 {
  e.ReportError(
   e.Site, 
   "Invalid quantity. The total number of each type of block cannot be less than 0.", 
   false,
   "",
   2,
   "modeless");
 }
}

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 gérer les erreurs et utiliser la ErrorsCollection collection, par exemple, pour ajouter de nouvelles erreurs ou supprimer des erreurs existantes.

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.

S’applique à