_DataDOMEventSink_Event.OnValidate Ereignis
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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) > 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");
}
}
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) > 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");
}
}
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.