Freigeben über


_DataDOMEventSink_Event.OnBeforeChange Ereignis

Definition

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.

Gilt für: