Condividi tramite


Implementazione del rendering basato su modelli

Aggiornamento: novembre 2007

I controlli mobili ASP.NET che supportano il rendering basato su modelli supportano anche il rendering personalizzato. Le modalità di utilizzo dei modelli per la creazione di un rendering dipendono dal dispositivo di destinazione. In ASP.NET è disponibile una sequenza standard di operazioni che consentono di personalizzare il rendering basato su modelli in funzione di uno specifico dispositivo. I controlli mobili che supportano il rendering basato su modelli devono utilizzare la seguente sequenza:

  1. Il controllo utilizza la proprietà IsTemplated per determinare se i modelli di dispositivo sono stati definiti e selezionati. A tale scopo, utilizzare il metodo OnInit o CreateChildControls.

  2. Se i modelli sono stati definiti, viene chiamato il metodo CreateTemplatedUI, che il controllo eredita dalla classe base MobileControl.

    Nota:

    Non chiamare il metodo CreateTemplatedUI se il controllo non è basato su modelli.

  3. Il metodo CreateTemplatedUI chiama il metodo CreateTemplatedUI dell'adattatore di controllo. È possibile codificare gli adattatori di dispositivo che eseguono l'override di tale metodo per implementare il rendering basato su modelli specifico del dispositivo.

  4. L'implementazione predefinita del metodo CreateTemplatedUI dell'adattatore di controllo, definita nella classe base dell'adattatore di controllo, chiama a sua volta il metodo CreateDefaultTemplatedUI del controllo. È possibile codificare i controlli che eseguono l'override di tale metodo per implementare il rendering generico basato su modelli.

  5. Nel metodo Render dell'adattatore il controllo esegue il rendering dei modelli mediante il rendering dell'elemento figlio del controllo, in cui vengono create istanze di modelli.

I controlli mobili inoltre devono sempre creare le istanze dei nuovi modelli in un tipo di controllo contenitore derivato dalla classe TemplateContainer. Si tratta di una regola più restrittiva rispetto a quella per i controlli server ASP.NET, per la quale è sufficiente che il controllo implementi l'interfaccia di indicazione INamingContainer. Nell'esempio di codice riportato di seguito viene mostrato come creare un'istanza di un modello in un controllo mobile.

void CreateChildTemplate(ITemplate template)
{
    TemplateContainer container = new TemplateContainer();
        template.InstantiateIn(container);
        container.DataBind();
        Controls.Add(container);
}

Eventi ItemCommand

Con il rendering basato su modelli, il gestore eventi ItemCommand viene chiamato mediante il meccanismo di bubbling degli eventi di ASP.NET. Al gestore eventi viene passato un parametro che punta all'elemento di origine e alla proprietà CommandName del controllo che ha generato l'evento. In questo modo è possibile eseguire il rendering di un singolo elemento dell'elenco con più interazioni associate.

Per il rendering predefinito, il controllo rende disponibile un'interfaccia utente semplice tramite la quale è possibile selezionare un elenco di elementi. Durante il postback, il controllo chiama il gestore ItemCommand con un argomento che punta all'elemento di origine. La proprietà CommandName restituisce un valore null.

Vedere anche

Attività

Procedura: creare controlli utente ASP.NET basati su modelli

Concetti

Insiemi di modelli e controlli basati su modelli

Altre risorse

Aggiunta di nuovi adattatori di dispositivo e supporto per dispositivi