Inntreffer etter at endringer i et skjemas underliggende XML-dokument er godtatt, men før OnAfterChange-hendelsen inntreffer.
Funksjon node::OnValidate(ByRef pDataDOMEvent As DataDOMEvent)
pDataDOMEvent Obligatorisk DataDOMEvent. En referanse til DataDOMEvent-objektet.
Merknader
Denne hendelsesbehandlingen tillater ikke at brukeren avbryter en operasjon.
Under OnValidate-hendelsen er skjemaets underliggende XML-dokument plassert i skrivebeskyttet modus.
OnValidate-hendelsen brukes vanligvis til feilbehandling og arbeid med Errors-samlingen, for eksempel til å legge til nye feil eller slette eksisterende feil.
Obs! I noen tilfeller kan hendelser som er relatert til endringer i et skjemas underliggende XML-dokument, inntreffe mer enn én gang. Hvis for eksempel eksisterende data endres, utføres en innsettings- og sletteoperasjon.
Eksempel
I deleksemplet fra eksempelskjemaet Events nedenfor brukes hendelsesbehandlingen OnValidate til å validere kontaktinformasjon. Hvis dataene er gyldige, brukes ReportError-metoden for DataDOMEVent-objektet til å opprette en feil.
function msoxd__ContactDates::OnValidate(eventObj)
{
var iNumberOfDays = 0;
var objEmailDate = XDocument.DOM.selectSingleNode
('/Customers/CustomerInfo/ContactDates/EmailCampaignDt');
var objPhoneContactDate = XDocument.DOM.selectSingleNode
('/Customers/CustomerInfo/ContactDates/PhoneContactDt');
var objRepVisitDate = XDocument.DOM.selectSingleNode
('/Customers/CustomerInfo/ContactDates/RepVisitDt');
// First validate the email and phone contact dates.
if (!objEmailDate || !objPhoneContactDate)
return;
var emailDate =
new Date(objEmailDate.text.replace(/(.*)-(.*)-(.*)/, "$2-$3-$1"));
var phoneContactDate =
new Date(objPhoneContactDate.text.replace(/(.*)-(.*)-(.*)/, "$2-$3-$1"));
if (isNaN(emailDate) || isNaN(phoneContactDate))
return;
// Get the number of days between the two dates.
iNumberOfDays = GetElapsedDays(emailDate, phoneContactDate);
if (iNumberOfDays < REQUIRED_PHONE_EMAIL_INTERVAL)
eventObj.ReportError(objPhoneContactDate,
"The Phone Contact Start date must occur after " +
REQUIRED_PHONE_EMAIL_INTERVAL +
" days from the start of the Email Campaign.", false);
...
}