Freigeben über


_DataDOMEventSink_Event.OnValidate-Ereignis

Tritt ein, nachdem Änderungen an dem einem Formular zugrunde liegenden XML-Dokument angenommen wurden, jedoch bevor das OnAfterChange-Ereignis eintritt.

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

Syntax

Event OnValidate As _DataDOMEventSink_OnValidateEventHandler

Dim instance As _DataDOMEventSink_Event
Dim handler As _DataDOMEventSink_OnValidateEventHandler

AddHandler instance.OnValidate, handler
event _DataDOMEventSink_OnValidateEventHandler OnValidate

Hinweise

Dieser Ereignishandler lässt nicht zu, dass Benutzer einen Vorgang abbrechen.

Während des OnValidate-Ereignisses wird das dem Formular zugrunde liegende XML-Dokument in den Schreibschutzmodus versetzt.

Das OnValidate-Ereignis wird normalerweise für die Behandlung von Fehlern und die Arbeit mit der ErrorsCollection-Auflistung verwendet, um z. B. neue Fehler hinzuzufügen oder vorhandene Fehler zu löschen.

Hinweis:

In einigen Fällen können Ereignisse, die mit Änderungen an dem einem Formular zugrunde liegenden XML-Dokument verbunden sind, mehr als einmal eintreten. So erfolgt z. B. beim Ändern vorhandener Daten ein Einfüge- und ein Löschvorgang.

Beispiel

Im folgenden Beispiel wird die Site-Eigenschaft des DataDOMEventObject-Objekts zum Überprüfen des Knotenwerts verwendet. Wenn die Datenüberprüfung einen Fehler zurückgibt, wird die ReportError-Methode verwendet, um einen benutzerdefinierten Fehler zu erstellen:

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

Siehe auch

Referenz

_DataDOMEventSink_Event-Schnittstelle
_DataDOMEventSink_Event-Member
Microsoft.Office.Interop.InfoPath.SemiTrust-Namespace