_DataDOMEventSink_Event.OnBeforeChange 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 ein, nachdem Änderungen an dem einem Formular zugrunde liegenden XML-Dokument vorgenommen wurden, jedoch bevor diese Änderungen angenommen werden.
public:
event Microsoft::Office::Interop::InfoPath::SemiTrust::_DataDOMEventSink_OnBeforeChangeEventHandler ^ OnBeforeChange;
event Microsoft.Office.Interop.InfoPath.SemiTrust._DataDOMEventSink_OnBeforeChangeEventHandler OnBeforeChange;
member this.OnBeforeChange : Microsoft.Office.Interop.InfoPath.SemiTrust._DataDOMEventSink_OnBeforeChangeEventHandler
Event OnBeforeChange As _DataDOMEventSink_OnBeforeChangeEventHandler
Ereignistyp
Beispiele
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 abzulehnen.
[InfoPathEventHandler(MatchPath="/Customers/Customer/RepVisitDt", EventType=InfoPathEventType.<span class="label">OnBeforeChange</span>)]
public void RepVisitDt_<span class="label">OnBeforeChange</span>(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;
}
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 abzulehnen.
[InfoPathEventHandler(MatchPath="/Customers/Customer/RepVisitDt", EventType=InfoPathEventType.<span class="label">OnBeforeChange</span>)]
public void RepVisitDt_<span class="label">OnBeforeChange</span>(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;
}
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 ist, lehnt Microsoft InfoPath die vorgenommenen Änderungen ab, 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: Vermeiden Sie den Wechsel der Ansichten während des OnBeforeChange-Ereignisses . Änderungen wurden noch nicht akzeptiert, und der Wechsel zu einer anderen Ansicht kann zu einem Fehler führen.
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.
Hinweis: Wenn im OnBeforeChange-Ereignis ein Validierungsfehler auftritt, kann das Dokument nicht geladen werden. Ein try/catch-Block im OnLoad -Ereignis kann verwendet werden, um diesen Überprüfungsfehler abzufangen und das Dokument trotz des Fehlers zu laden.