Condividi tramite


Evento _DataDOMEventSink_Event.OnValidate

Generato dopo l'accettazione delle modifiche apportate al documento XML sottostante di un modulo ma prima che si verifichi l'evento OnAfterChange.

Spazio dei nomi: Microsoft.Office.Interop.InfoPath.SemiTrust
Assembly: Microsoft.Office.Interop.InfoPath.SemiTrust (in microsoft.office.interop.infopath.semitrust.dll)

Sintassi

Event OnValidate As _DataDOMEventSink_OnValidateEventHandler

Dim instance As _DataDOMEventSink_Event
Dim handler As _DataDOMEventSink_OnValidateEventHandler

AddHandler instance.OnValidate, handler
event _DataDOMEventSink_OnValidateEventHandler OnValidate

Osservazioni

Questo gestore eventi non consente di annullare un'operazione.

Durante l'evento OnValidate viene attivata la modalità di sola lettura per il documento XML sottostante del modulo.

L'evento OnValidate viene in genere utilizzato per gestire errori e utilizzare l'insieme ErrorsCollection, ad esempio per aggiungere nuovi errori o eliminare quelli esistenti.

Nota:

In alcuni casi è possibile che gli eventi correlati a modifiche del documento XML sottostante di un modulo si verifichino più di una volta. Ad esempio, quando si modificano dati esistenti, viene eseguita un'operazione di inserimento ed eliminazione.

Esempio

Nell'esempio seguente, la proprietà Site dell'oggetto DataDOMEventObject viene utilizzata per controllare il valore del nodo. Se la convalida dei dati ha esito negativo, viene utilizzato il metodo ReportError per creare un errore personalizzato:

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

Vedere anche

Riferimenti

Interfaccia _DataDOMEventSink_Event
Membri _DataDOMEventSink_Event
Spazio dei nomi Microsoft.Office.Interop.InfoPath.SemiTrust