DocContextChangeEvent-objektet
Et hendelsesobjekt som brukes under en kontekstendringshendelse i Microsoft Office InfoPath 2003. DocContextChangeEvent-objektet har et antall egenskaper som kan brukes i en kontekstendring til å arbeide programmatisk og interaktivt med dataene i et skjemas underliggende XML-dokument, gi relevant tilbakemelding til brukeren, eller til å utføre handlinger for brukeren.
Merknader
DocContextChangeEvent-objektet overføres som en parameter til OnContextChange-hendelsen.
DocContextChangeEvent-objektet brukes til å hente informasjon om XML Document Object Model-noden (DOM-noden) som er den gjeldende konteksten for skjemaets underliggende XML-dokument. I tillegg gir det informasjon om kontekstendringstypen og om endringen skjedde på grunn av en angre- eller gjør om-operasjon utført av brukeren.
Som beskrevet i emnet om OnContextChange-hendelsen, returnerer Type-egenskapen bare verdien "ContextNode" for kontekstendringer i Microsoft InfoPath 2003 Service Pack 1. Hvis koden i en hendelsesbehandling imidlertid utfører handlinger som avhenger av gjeldende funksjonalitet, bør den koden være utformet til å sjekke verdien for Type-egenskapen, fordi fremtidige versjoner av InfoPath kanskje bruker andre verdier for andre kontekstendringer.
Obs! Denne objektmodellen støttes ikke når alternativet Deaktiver funksjoner fra oppdateringspakke under Avansert-kategorien i Alternativer-dialogboksen i InfoPath er valgt, eller når Microsoft Office 2003 Service Pack 1 eller senere ikke er installert. Skjemaer som implementerer dette objektmodellmedlemmet i kode, vil generere en feilmelding hvis de åpnes i InfoPath nå oppdateringspakkefunksjoner er deaktivert eller ikke er tilgjengelige.
Bruke DocContextChangeEvent-objektet
Når egenskapen IsUndoRedo for DocContextChangeEvent-objektet er True, skyldes kontekstendringen en angre- eller gjør om-operasjon, og ikke at brukeren har utført en eksplisitt kontekstendring. Operasjoner som utføres i OnContextChange-hendelsesbehandlingen, og som endrer XML DOM, bør unngås som respons på angre- eller gjør om-handlinger, fordi de kan hindre brukeren i å gjenopprette data til en tidligere tilstand.
Eksempel
I eksempelet nedenfor oppdateres en node ved navn lastChanged, som respons på kontekstendringer:
function XDocument::OnContextChange(eventObj)
{
if ( eventObj.Type == "ContextNode" && !eventObj.IsUndoRedo )
{
var oContextNode = eventObj.Context;
var oLastChangedNode =
XDocument.DOM.selectSingleNode("my:lastChanged");
oLastChangedNode.text = oContextNode.nodeName;
}
}