_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