Interaktion zwischen Steuerelement und Adapter
Aktualisiert: November 2007
Während des Lebenszyklus von ASP.NET Mobile-Steuerelementen erfolgen zwei Arten der Interaktion mit den zugeordneten Adaptern: die Interaktion zwischen Steuerelementen und Geräteadaptern sowie die Interaktion zwischen Seiten und Seitenadaptern.
Steuerelemente und Steuerelement-Geräteadapter
Während des Lebenszyklus eines mobilen Steuerelements finden die folgenden Interaktionen zwischen dem Steuerelement und dem zugeordneten Geräteadapter statt:
ASP.NET überprüft zuerst, ob eine Kopie der Seite im Cache vorhanden ist. Wenn dies der Fall ist, wird die zwischengespeicherte Seite an den Client gesendet. Weitere Informationen über die Zwischenspeicherung finden Sie unter Empfohlene Vorgehensweise für die Wiedergabe mit mobilem Textwriter im Abschnitt zum Zwischenspeichern der Ausgabe.
Es wird ein Steuerelement erstellt. Beim ersten Zugriff auf die Adapter-Eigenschaft des Steuerelements wird ein Steuerelementadapter ausgewählt und eine neue Instanz von ihm erstellt. Dies wird unter Adapterzuordnungen im Abschnitt zum Ablauf des Auswahlprozesses für Geräteadapter beschrieben.
Die Control-Eigenschaft des Steuerelementgeräteadapters wird beim Erstellen des neuen Adapters festgelegt.
Wenn die Seite zwischengespeichert wurde, ruft die Seite den Adapter auf, um zu bestimmen, ob die Zwischenspeicherung durch zusätzliche Header geändert werden muss.
Die OnInit-Methode des Steuerelements wird aufgerufen. Die Implementierung der MobileControl-Basisklasse ruft die OnInit-Methode des Steuerelementgeräteadapters auf.
Der private Ansichtszustand des Steuerelements wird geladen, sofern vorhanden. Wenn die Geräteadapter einen gerätespezifischen Zustand für das Steuerelement speichern, ruft die Implementierung der MobileControl-Basisklasse der LoadPrivateViewState-Methode die LoadAdapterState-Methode des Steuerelementgeräteadapters auf.
Die OnLoad-Methode des Steuerelements wird aufgerufen. Die Implementierung der MobileControl-Basisklasse ruft die OnLoad-Methode des Steuerelementgeräteadapters auf.
Wenn das Steuerelement die IPostBackEventHandler-Schnittstelle implementiert und ein Postback-Ereignis empfängt, wird die RaisePostBackEvent-Methode des Steuerelements aufgerufen. Wenn an das Steuerelement gesendete Ereignisse je nach Zielgerät variieren können, ruft die Steuerelementimplementierung dieser Methode die HandlePostBackEvent-Methode des Steuerelementgeräteadapters auf. Die HandlePostBackEvent-Methode gibt true oder false zurück und gibt damit an, ob der Geräteadapter das Ereignis behandelt hat.
Der private Anzeigezustand des Steuerelements wird ggf. gespeichert. Die Implementierung der MobileControl-Basisklasse der SavePrivateViewState-Methode ruft die SaveAdapterState-Methode des Steuerelementgeräteadapters auf, wenn der Adapter einen gerätespezifischen Zustand für das Steuerelement speichern muss.
Die OnPreRender-Methode des Steuerelements wird aufgerufen. Die Implementierung der MobileControl-Basisklasse ruft die OnPreRender-Methode des Steuerelementgeräteadapters auf.
Die Render-Methode des Steuerelements wird aufgerufen. Die Implementierung der MobileControl-Basisklasse ruft die Render-Methode des Steuerelementadapters auf.
Die OnUnload-Methode des Steuerelements wird aufgerufen. Die Implementierung der MobileControl-Basisklasse ruft die OnUnload-Methode des Steuerelementgeräteadapters auf.
Seiten und Seitenadapter
Obwohl die MobilePage-Klasse von der Page-.NET Framework-Klasse anstatt der MobileControl-Klasse erbt, ähnelt das adapterbezogene Verhalten der MobilePage-Klasse stark dem der MobileControl-Klasse.
Mobile Seitenadapter in ASP.NET, wie ChtmlPageAdapter, HtmlPageAdapter, WmlPageAdapter oder XhtmlPageAdapter, implementieren die IPageAdapter-Schnittstelle (die ihrerseits wiederum die IControlAdapter-Schnittstelle implementiert). Daher entspricht der Lebenszyklus eines Seitenadapters ungefähr dem eines Steuerelementadapters. Eine mobile Seite und deren Geräteadapter interagieren entsprechend der Page-Klasse und durchlaufen während ihres Lebenszyklus die folgenden Schritte:
ASP.NET erstellt eine Seite. Beim ersten Zugriff auf die Adapter-Eigenschaft der Seite wird ein Seitenadapter ausgewählt und eine Instanz von diesem erstellt. Dies wird unter Adapterzuordnungen im Abschnitt zum Ablauf des Auswahlprozesses für Geräteadapter beschrieben. Die Page-Eigenschaft des Seitenadapters wird beim Erstellen des Adapters festgelegt.
Die OnInit-Methode der Seite wird aufgerufen. Die Implementierung der MobilePage-Basisklasse ruft die OnInit-Methode des Seitenadapters auf.
Die OnDeviceCustomize-Methode der Seite wird aufgerufen. Die Implementierung der MobilePage-Basisklasse ruft die OnDeviceCustomize-Methode des Seitenadapters auf.
Um den Postback-Modus einer Seite zu bestimmen, ruft die MobilePage-Basisklasse ggf. die DeterminePostBackMode-Methode des Seitenadapters auf. Diese Methode bietet die Möglichkeit, Anforderungsvariablen zu überprüfen und zu ändern. Außerdem ist diese Methode für die Rückverschiebung gespeicherter Informationen über den Anzeigezustand in eine Formularvariable zuständig, wenn diese Informationen nicht bereits in einer Variablen gespeichert sind.
Der private Anzeigezustand der Seite wird ggf. geladen. Die MobilePage-Basisklasse ruft die LoadAdapterState-Methode des Seitenadapters auf, wenn der Adapter einen gerätespezifischen Ansichtszustand für die Seite speichert.
Die OnLoad-Methode der Seite wird aufgerufen. Die Implementierung der MobilePage-Basisklasse ruft die OnLoad-Methode des Seitenadapters auf.
Der private Anzeigezustand der Seite wird ggf. gespeichert. Die MobilePage-Basisklasse ruft die SaveAdapterState-Methode des Seitenadapters auf, wenn der Adapter einen gerätespezifischen Ansichtszustand für die Seite speichern muss.
Die MobilePage-Basisklasse ruft die SaveViewState-Methode des Seitenadapters auf. Diese Methode stellt sicher, dass der als Parameter übergebene Zustand in die geschriebene Seite serialisiert wird.
Während der Paginierung greift die MobilePage-Basisklasse auf die OptimumPageWeight-Eigenschaft des Seitenadapters zu. Der Adapter gibt eine für das Zielgerät geeignete Seitenlast zurück.
Die OnPreRender-Methode der Seite wird aufgerufen. Die Implementierung der MobilePage-Basisklasse ruft die OnPreRender-Methode des Seitenadapters auf.
Für das Erfassen der Seitenausgabe wird eine Writerinstanz erstellt. Die MobilePage-Basisklasse ruft die CreateTextWriter-Methode des Seitenadapters auf, die einen zielspezifischen Textwriter zurückgeben muss.
Die Render-Methode der Seite wird aufgerufen. Die Implementierung der MobilePage-Basisklasse ruft die Render-Methode des Seitenadapters auf. Der Adapter ist während der Wiedergabe außerdem für den Zugriff auf den privaten Ansichtszustand und das Schreiben des privaten Ansichtszustands der Seite zuständig. Dies erfolgt über die ClientViewState-Eigenschaft der Seite.
Die OnUnload-Methode der Seite wird aufgerufen. Die Implementierung der MobilePage-Basisklasse ruft die OnUnload-Methode des Seitenadapters auf.