DocContextChangeEvent-objektet

Microsoft Office InfoPath

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;
    }
}