Evento _DataDOMEventSink_Event.OnBeforeChange
Generato dopo l'esecuzione di modifiche nel documento XML sottostante di un modulo ma prima che tali modifiche vengano accettate.
Spazio dei nomi: Microsoft.Office.Interop.InfoPath.SemiTrust
Assembly: Microsoft.Office.Interop.InfoPath.SemiTrust (in microsoft.office.interop.infopath.semitrust.dll)
Sintassi
Event OnBeforeChange As _DataDOMEventSink_OnBeforeChangeEventHandler
Dim instance As _DataDOMEventSink_Event
Dim handler As _DataDOMEventSink_OnBeforeChangeEventHandler
AddHandler instance.OnBeforeChange, handler
event _DataDOMEventSink_OnBeforeChangeEventHandler OnBeforeChange
Osservazioni
Questo gestore eventi consente agli utenti di annullare un'operazione DataDOM.
Durante l'evento OnBeforeChange, il documento XML sottostante del modulo viene impostato in modalità di sola lettura. Se la proprietà ReturnStatus dell'oggetto DataDOMEventObject viene impostata su false, le modifiche apportate vengono rifiutate da Microsoft Office InfoPath 2007 e viene visualizzata una finestra di messaggio. Se si verifica un errore nel codice relativo all'evento OnBeforeChange, le modifiche vengono rifiutate da InfoPath e viene ripristinato lo stato originario dei dati.
![]() |
---|
È consigliabile evitare di cambiare visualizzazione durante l'evento OnBeforeChange, poiché le modifiche non sono state ancora accettate e il passaggio a un'altra visualizzazione potrebbe causare un errore. |
![]() |
---|
In alcuni casi è possibile che gli eventi correlati a modifiche del documento XML sottostante di un modulo si verifichino più di una volta. Ad esempio, quando si modificano dati esistenti, viene eseguita un'operazione di inserimento ed eliminazione. |
![]() |
---|
Se si verifica un errore di convalida nell'evento OnBeforeChange, il documento non viene caricato. È possibile utilizzare un blocco try-catch nell'evento OnLoad per intercettare questo errore di convalida e caricare il documento nonostante l'errore. |
Esempio
Nell'esempio seguente, il gestore eventi OnBeforeChange viene utilizzato per convalidare i dati di un campo. Se i dati non sono validi, viene utilizzata la proprietà ReturnStatus dell'oggetto DataDOMEventObject per rifiutare le modifiche.
[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;
}
Vedere anche
Riferimenti
Interfaccia _DataDOMEventSink_Event
Membri _DataDOMEventSink_Event
Spazio dei nomi Microsoft.Office.Interop.InfoPath.SemiTrust