Freigeben über


_DataDOMEventSink_Event.OnValidate Ereignis

Definition

Tritt auf, nachdem Änderungen am einem Formular zugrunde liegenden XML-Dokument akzeptiert wurden, aber bevor das OnAfterChange Ereignis eintritt.

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 

Ereignistyp

Beispiele

Im folgenden Beispiel wird die Site -Eigenschaft des DataDOMEventObject -Objekts verwendet, um den Wert des Knotens zu überprüfen. Wenn die Datenüberprüfung fehlschlägt, wird die ReportError(Object, String, Boolean, String, Int32, String) -Methode verwendet, um einen benutzerdefinierten Fehler zu erstellen:

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

Im folgenden Beispiel wird die Site -Eigenschaft des DataDOMEventObject -Objekts verwendet, um den Wert des Knotens zu überprüfen. Wenn die Datenüberprüfung fehlschlägt, wird die ReportError(Object, String, Boolean, String, Int32, String) -Methode verwendet, um einen benutzerdefinierten Fehler zu erstellen:

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

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 in der Regel verwendet, um Fehler zu behandeln und mit der ErrorsCollection Auflistung zu arbeiten, z. B. zum Hinzufügen neuer Fehler oder zum Löschen vorhandener Fehler.

Hinweis: In einigen Fällen können Ereignisse im Zusammenhang mit Änderungen im zugrunde liegenden XML-Dokument eines Formulars mehrmals auftreten. So erfolgt z. B. beim Ändern vorhandener Daten ein Einfüge- und ein Löschvorgang.

Gilt für: