_DataDOMEventSink_Event.OnBeforeChange Événement
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Se produit une fois que des modifications ont été effectuées dans le document XML sous-jacent d'un formulaire mais avant l'acceptation de ces modifications.
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
Type d'événement
Exemples
Dans l'exemple suivant, le gestionnaire d'événements OnBeforeChange est utilisé pour valider les données d'un champ. Si les données ne sont pas valides, la ReturnStatus propriété de l’objet DataDOMEventObject est utilisée pour rejeter les modifications.
[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;
}
Dans l'exemple suivant, le gestionnaire d'événements OnBeforeChange est utilisé pour valider les données d'un champ. Si les données ne sont pas valides, la ReturnStatus propriété de l’objet DataDOMEventObject est utilisée pour rejeter les modifications.
[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;
}
Remarques
Ce gestionnaire d'événements permet aux utilisateurs d'annuler une opération DataDOM.
Pendant l'événement OnBeforeChange, le document XML sous-jacent du formulaire est mis en mode lecture seule. Si la ReturnStatus propriété de l’objet a la DataDOMEventObject valeur false, Microsoft InfoPath rejette les modifications apportées et une boîte de message s’affiche à l’utilisateur. Si une erreur se produit dans le code de l'événement OnBeforeChange, InfoPath rejette les modifications et rétablit l'état précédent des données.
Remarque : Il est préférable d’éviter de changer d’affichage pendant l’événement OnBeforeChange . les modifications n’ont pas encore été acceptées, et le passage à une autre vue peut entraîner une erreur.
Remarque : Dans certains cas, les événements liés aux modifications apportées au document XML sous-jacent d’un formulaire peuvent se produire plusieurs fois. Par exemple, lorsque des données existantes sont modifiées, une opération d'insertion et de suppression se produit.
Remarque : si une erreur de validation est rencontrée dans l’événement OnBeforeChange , le chargement du document échoue. Un bloc try/catch dans l’événement OnLoad peut être utilisé pour intercepter cet échec de validation et charger le document en dépit de l’erreur.