Set di adattatori WML

Il set di adattatori WML è costituito da classi che possono essere utilizzate per il rendering delle pagine Web Forms mobili ASP .NET nei client che supportano WML v1.1 o WML v1.2. Alcuni metodi e proprietà potrebbero non essere inclusi nella presente documentazione. Per visualizzare il codice sorgente, vedere Codice dell'adattatore di dispositivo.

Nella tabella riportata di seguito sono elencate le classi principali incluse nel set di adattatori WML.

Set di adattatori Spazio dei nomi delle classi di adattatori principali
Classe base ControlAdapter System.Web.UI.MobileControls.Adapters.WmlControlAdapter
Classe FormAdapter System.Web.UI.MobileControls.Adapters.WmlFormAdapter
Classe PageAdapter System.Web.UI.MobileControls.Adapters.WmlPageAdapter
Classe TextWriter System.Web.UI.MobileControls.Adapters.WmlMobileTextWriter

I browser Openwave Up.Browser utilizzano un adattatore di pagina e un writer di testo diversi. Il set di adattatori che supporta questi browser utilizza le classi principali elencate nella seguente tabella:

Set di adattatori Spazio dei nomi delle classi di adattatori principali
Classe base ControlAdapter System.Web.UI.MobileControls.Adapters.WmlControlAdapter
Classe FormAdapter System.Web.UI.MobileControls.Adapters. WmlFormAdapter
Classe PageAdapter System.Web.UI.MobileControls.Adapters.UpWmlPageAdapter
Classe TextWriter System.Web.UI.MobileControls.Adapters.UpWmlMobileTextWriter

Selezione

Il set di adattatori WML è selezionato se la proprietà PreferredRenderingType della classe MobileCapabilities restituisce wml11 o wml12.

Rendering adattivo

Il set di adattatori WML è in grado di adattarsi in modo significativo alle varie funzionalità dei telefoni cellulari WML. Pertanto chiama effettivamente il metodo Render due volte per ciascun form e i relativi controlli figlio. Nella prima fase, il writer si trova nella modalità di analisi e utilizza tutte le chiamate ricevute per analizzare l'output del form. Nella seconda fase, viene eseguito il rendering effettivo del form.

Evitare la creazione di adattatori che distinguono le fasi. In caso di assoluta necessità, è possibile scrivere un adattatore in grado di accedere alla modalità corrente selezionando la proprietà AnalyzeMode della classe WmlMobileTextWriter.

Rendering predefinito

Nei passaggi descritti di seguito vengono illustrati i rendering predefiniti delle classi degli adattatori di pagina e di form nel set di adattatori WML.

L'adattatore di pagina utilizza la seguente procedura:

  1. Chiama i metodi BeginResponse e BeginFile per il writer. Il tipo di contenuto è text/vnd.wap.wml.
  2. Scrive un tag <wml> di apertura.
  3. Esegue il rendering del form attivo.
  4. Esegue, se possibile, il rendering dei form collegati appartenenti allo stesso deck.
  5. Scrive un tag </wml> di chiusura.
  6. Chiama i metodi EndFile ed EndResponse.

L'adattatore di form utilizza la seguente procedura:

  1. Imposta il writer sulla modalità di analisi.
  2. Chiama il metodo BeginForm del writer.
  3. Esegue il rendering dei contenuti del form. I risultati non vengono inviati al dispositivo ma vengono analizzati dal writer.
  4. Chiama il metodo EndForm del writer.
  5. Imposta il writer sulla modalità di esecuzione.
  6. Chiama il metodo BeginForm del writer.
  7. Esegue il rendering dei contenuti del form.
  8. Chiama il metodo EndForm del writer.

Utilizzo degli stili

Nella classe WmlMobileTextWriter sono disponibili alcuni metodi di supporto che facilitano l'utilizzo di informazioni relative allo stile per il rendering del contenuto:

  • I metodi EnterLayout ed ExitLayout consentono a un adattatore di emettere il tag di inizio e di fine di un blocco utilizzando la formattazione di paragrafo di un determinato stile.
  • I metodiEnterFormat ed ExitFormat consentono a un adattatore di emettere il tag di inizio e di fine di un blocco utilizzando la formattazione di carattere di un determinato stile.
  • Il metodo ResetFormattingState consente a un adattatore di reimpostare lo stato della formattazione sullo stato predefinito.

Metodi del rendering adattivo

Nella classe WmlMobileTextWriter sono disponibili alcuni metodi di alto livello per il rendering, come illustrato nella tabella riportata di seguito.

È necessario che gli adattatori WML utilizzino questi metodi per il rendering del contenuto, in quanto il writer è in grado di adattare automaticamente l'output nel modo ottimale in base alle funzionalità del dispositivo di destinazione.

Per informazioni dettagliate su ciascuno di questi metodi, vedere la documentazione di riferimento relativa alla classe WmlMobileTextWriter.

Metodo del writer Descrizione
RenderText Esegue il rendering di un elemento di testo.
RenderImage Esegue il rendering di un elemento di immagine.
RenderTextBox Esegue il rendering di un elemento della casella di immissione testo.
RenderBeginHyperlink

RenderEndHyperlink

Esegue il rendering di un elemento di collegamento ipertestuale. Chiama il metodo RenderText o RenderImage per il rendering di un testo o di un'immagine all'interno del collegamento ipertestuale.
RenderBeginPostBack

RenderEndPostBack

Esegue il rendering di un elemento di postback. Chiama il metodo RenderText o RenderImage per il rendering di un testo o di un'immagine all'interno del postback.
RenderBeginSelect

RenderEndSelect

RenderSelectOption

Esegue il rendering di un elemento di un elenco di selezione. Chiama il metodo RenderSelectOption per il rendering di ciascuna opzione dell'elenco di selezione.
AddFormVariable Aggiunge una variabile e un valore iniziale di cui eseguire il rendering insieme al form. Quando un dispositivo WML esegue il rendering del form, inizializza la variabile sul valore iniziale specifico.

Inoltre nella classe base WmlControlAdapter sono disponibili alcuni metodi di alto livello, come indicato nella tabella riportata di seguito. Ciascuno di questi metodi utilizza i metodi del writer descritti in precedenza per il rendering.

Metodo dell'adattatore Descrizione
RenderBeginLink

RenderEndLink

Esegue il rendering di un collegamento. L'adattatore determina automaticamente la procedura da utilizzare, eseguendo il rendering dei collegamenti ai form nella stessa pagina come postback e il rendering degli altri collegamenti come collegamenti ipertestuali.

Chiama il metodo RenderText o RenderImage nel writer per il rendering di un testo o di un'immagine all'interno del collegamento.

RenderLink Esegue il rendering di un collegamento con testo interno.
RenderPostBackEvent Esegue il rendering di un evento postback con il controllo come destinazione.

In alcuni dispositivi WML, è preferibile eseguire il rendering di un form costituito da più collegamenti o ancoraggi come un menu di voci utilizzando un costrutto Select/Option (tag <select> e <option>), mediante l'interfaccia utente con tasti di spostamento generata automaticamente. I browser Openwave Up.Browser sono un esempio di tale tipo di dispositivo.

L'adattatore di form WML è in grado di eseguire il rendering di un form come menu se il form include zero o più controlli che eseguono il rendering come testo statico, seguiti da uno o più controlli che possono eseguire il rendering in un costrutto Select/Option.

Se la proprietà RendersWmlSelectsAsMenuCards della classe MobileCapabilities è impostata su true, il dispositivo può eseguire il rendering di costrutti con tag <select> come schede di menu, anziché come casella combinata.

CanCombineFormsInDeck è impostato su true se il browser può gestire deck che contengono più form come schede separate. L'adattatore può restituire più form dalla stessa pagina come schede di un singolo deck.

Rendering dell'accettazione dei form

Quando un form di cui è stato eseguito il rendering include un'interfaccia utente (UI) per la restituzione al server dei risultati relativi al form, alcuni dispositivi WML richiedono che l'interfaccia utente per il dispositivo specificato venga indicata come un oggetto <do> all'inizio del form. I browser Openwave Up.Browser sono un esempio di tale tipo di dispositivo.

Quando un dispositivo richiede che l'interfaccia utente utilizzi un oggetto <do>, l'adattatore di form verifica se i controlli del form richiedono l'interfaccia utente per l'invio e se i controlli forniscono effettivamente tale interfaccia. Per determinare tali informazioni, l'adattatore di form esegue le query agli adattatori di ciascun controllo del form.

Rendering per tasti softkey

Alcuni controlli eseguono il rendering di un'interfaccia utente di cui sia possibile eseguire il mapping a un tasto softkey in un dispositivo WML. La proprietà RendersWmlDoAcceptsInline della classe MobileCapabilities Class è impostata su true se il dispositivo esegue il rendering di un costrutto <do> WML come pulsante inline anziché come tasto softkey.

Interfaccia utente secondaria

Il set di adattatori WML supporta un'interfaccia utente secondaria, utilizzata dai controlli che devono visualizzare schermate aggiuntive di un'interfaccia utente, in modo analogo a una finestra di dialogo in un'applicazione Windows. Per utilizzare un'interfaccia utente secondaria, un adattatore di controllo effettua la seguente procedura:

  1. In risposta all'interazione di un utente (in genere nel metodo HandlePostBackEvent di cui non è possibile eseguire l'override), l'adattatore del controllo imposta la modalità di interfaccia utente secondaria su una costante interna conosciuta, impostando la proprietà SecondaryUIMode della classe base WmlControlAdapter.
  2. Durante il rendering, il controllo verifica se è attiva la modalità di interfaccia utente secondaria e utilizza tale modalità per il rendering dell'interfaccia utente secondaria appropriata.
  3. In risposta all'interazione dell'utente dalla UI secondaria, l'adattatore del controllo potrebbe modificare la modalità di interfaccia utente secondaria impostandola su un altro valore oppure potrebbe uscire da tale modalità chiamando il metodo ExitSecondaryMode della classe base WmlControlAdapter.

Funzionalità aggiuntive

Nei dispositivi WML sono inoltre disponibili funzionalità aggiuntive che consentono di modificare il rendering. Tali funzionalità sono accessibili tramite il metodo HasCapability della classe MobileCapabilities.

Vedere anche

Per ulteriori informazioni, vedere Tabella delle funzionalità di dispositivo.