Supporto del modello di dispositivo

Il supporto del modello di dispositivo viene fornito nell'ambito del costrutto DeviceSpecific/Choice. La scrittura di controlli mobili ASP.NET che rendono disponibili modelli di dispositivo è molto simile alla scrittura di controlli server ASP.NET basati su modelli. Tuttavia, è necessario tenere presenti le caratteristiche specifiche dei controlli mobili indicate di seguito.

  • Ogni controllo mobile che supporta i modelli di dispositivo implementa l'interfaccia ITemplateable. È un'interfaccia di indicazione priva di metodi.
  • I controlli che supportano i modelli di dispositivo devono includere una modalità di rendering predefinito affinché il controllo possa eseguire il rendering sui dispositivi anche se non sono stati definiti o specificati modelli di dispositivo.
  • Gli sviluppatori del controllo devono scegliere la modalità di trattamento dei modelli di dispositivo durante il rendering. È possibile, ad esempio, passare a una modalità basata esclusivamente su modelli se è stato definito e scelto un qualunque modello di dispositivo. In questo caso, il controllo esegue le operazioni di rendering utilizzando i modelli forniti. List è un esempio di questo tipo di controllo. In alternativa, mediante il controllo è possibile utilizzare i modelli all'interno di un semplice processo di aggiunta. Se viene definito e scelto un modello specifico, è possibile utilizzarlo per aggiungere o sostituire parti del rendering predefinito. Form è un esempio di controllo che mostra questo comportamento.
  • Invece di esporre le proprietà ITemplate, un controllo mobile consente di accedere a un insieme di modelli definiti. La classe di base MobileControl include due membri che rendono semplice l'utilizzo di modelli di dispositivo da parte di un controllo.
    • La proprietà IsTemplated indica se per il controllo sono stati definiti e scelti dei modelli, come illustrato nell'esempio seguente:

      [C#]

      if (mobileControl.IsTemplated)
      {
          return true;
      }
      
    • Il metodo GetTemplate restituisce il modello di dispositivo con il nome specificato, oppure null se non è stato definito alcun modello. Nell'esempio riportato di seguito viene descritto come i modelli di dispositivo vengono recuperati e ne viene verificato lo stato null.

      [C#]

      public override void CreateDefaultTemplatedUI(bool doDataBind) 
          {
              ITemplate headerTemplate = GetTemplate(Constants.HeaderTemplateTag);
              ITemplate footerTemplate = GetTemplate(Constants.FooterTemplateTag);
              ITemplate scriptTemplate = GetTemplate(Constants.ScriptTemplateTag);
              if (headerTemplate != null)
              {
                  _headerContainer = new TemplateContainer();
                  headerTemplate.InstantiateIn(_headerContainer);
                  _headerContainer.EnablePagination = false;
                  Controls.AddAt(0, _headerContainer);
              }
              if (footerTemplate != null)
              {
                  _footerContainer = new TemplateContainer();
                  footerTemplate.InstantiateIn(_footerContainer);
                  _footerContainer.EnablePagination = false;
                  Controls.Add(_footerContainer);
              }
              if (scriptTemplate != null)
              {
                  _scriptContainer = new TemplateContainer();
                  scriptTemplate.InstantiateIn(_scriptContainer);
                  _scriptContainer.EnablePagination = false;
              }
          }
      

Nella tabella che segue vengono descritti i modelli disponibili mediante il controllo Form. Tale controllo supporta sia insiemi di modelli specifici per dispositivo che modelli indipendenti dal dispositivo.

Modello Descrizione
HeaderTemplate Il rendering del modello dell'intestazione viene eseguito nella parte superiore del form. Se il form viene impaginato su più schermate, ogni schermata include l'intestazione. Il modello dell'intestazione può essere incluso in un insieme di modelli indipendenti dal dispositivo. Se l'insieme di modelli è indipendente dal dispositivo, il modello dell'intestazione contiene controlli mobili.
FooterTemplate Il rendering del modello del piè di pagina viene eseguito nella parte inferiore del form. Se il form viene impaginato su più schermate, ogni schermata include il piè di pagina. Il modello del piè di pagina può essere incluso in un insieme di modelli indipendenti dal dispositivo. Se l'insieme di modelli è indipendente dal dispositivo, il modello del piè di pagina contiene controlli mobili.
ScriptTemplate Il rendering del modello dello script viene eseguito nella parte superiore del form. Se il form viene impaginato su più schermate, ogni schermata include il modello dello script. Il codice incluso nel modello dello script viene aggiunto subito dopo il tag di apertura <head> nei dispositivi HTML e subito dopo il tag di apertura <card> nei dispositivi WML.

I modelli sono inoltre disponibili a livello di codice. Vedere le proprietà Footer, Header e Script.

Vedere anche

Insiemi di modelli e controlli basati su modelli | Implementazione del rendering basato su modelli