Freigeben über


_DataDOMEventSink_Event.OnBeforeChange-Ereignis

Tritt ein, nachdem Änderungen an dem einem Formular zugrunde liegenden XML-Dokument vorgenommen wurden, jedoch bevor diese Änderungen angenommen werden.

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

Syntax

Event OnBeforeChange As _DataDOMEventSink_OnBeforeChangeEventHandler

Dim instance As _DataDOMEventSink_Event
Dim handler As _DataDOMEventSink_OnBeforeChangeEventHandler

AddHandler instance.OnBeforeChange, handler
event _DataDOMEventSink_OnBeforeChangeEventHandler OnBeforeChange

Hinweise

Dieser Ereignishandler lässt es zu, dass Benutzer einen DataDOM-Vorgang abbrechen.

Während des OnBeforeChange-Ereignisses wird das dem Formular zugrunde liegende XML-Dokument in den Schreibschutzmodus versetzt. Wenn die ReturnStatus-Eigenschaft des DataDOMEventObject-Objekts auf false festgelegt wird, werden die vorgenommenen Änderungen von Microsoft Office InfoPath 2007 abgelehnt, und dem Benutzer wird ein Meldungsfeld angezeigt. Wenn ein Fehler im Skriptcode für das OnBeforeChange-Ereignis auftritt, werden die Änderungen von InfoPath abgelehnt, und die Daten werden im vorherigen Zustand wiederhergestellt.

Hinweis:

Es empfiehlt sich, die Ansichten während des OnBeforeChange-Ereignisses nicht zu wechseln. Die Änderungen wurden noch nicht angenommen, und der Wechsel zu einer anderen Ansicht kann einen Fehler auslösen.

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.

Hinweis:

Tritt ein Fehler während der Gültigkeitsprüfung in einem OnBeforeChange-Ereignis auf, wird das Dokument nicht geladen. Ein try-catch-Block im OnLoad-Ereignis kann zum Abfangen dieses Gültigkeitsprüfungsfehlers und zum Laden des Dokuments trotz des Fehlers verwendet werden.

Beispiel

Im folgenden Beispiel wird der Ereignishandler OnBeforeChange verwendet, um die Daten in einem Feld zu überprüfen. Wenn die Daten ungültig sind, wird die ReturnStatus-Eigenschaft des DataDOMEventObject-Objekts verwendet, um die Änderungen zu verwerfen.

[InfoPathEventHandler(MatchPath="/Customers/Customer/RepVisitDt", EventType=InfoPathEventType.OnBeforeChange)]
public void RepVisitDt_OnBeforeChange(DataDOMEvent e)
{
 IXMLDOMNode phone = thisXDocument.DOM.selectSingleNode    (@"/Customers/CustomerInfo/ContactDates/PhoneContactDt");
 if (phone.text == "")
 {
  e.ReturnMessage = "The Phone Contact Start date must be set prior to the Representative Visit date.";
  e.ReturnStatus = false;
  return;
 }
 // If the data is valid, eventObj.ReturnStatus = true.
 e.ReturnStatus = true;
 return;
}

Siehe auch

Referenz

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