Elemento <Choice>

Fornisce una singola opzione all'interno di un insieme di opzioni del costrutto DeviceSpecific/Choice. Durante il rendering viene selezionata una delle opzioni incluse nell'elemento <DeviceSpecific>, in base alle caratteristiche del dispositivo di destinazione.

Un elemento <Choice> può includere un numero indefinito di modelli. Se un elemento Choice include modelli, può essere utilizzato come insieme di modelli. Per maggiori dettagli, vedere Insiemi di modelli e controlli basati su modelli.

L'elemento Choice può anche includere proprietà che eseguono l'override delle proprietà del controllo o dello stile padre. Il tipi di proprietà che seguono possono essere sottoposti a override:

  • Qualsiasi proprietà può essere impostata in modo dichiarativo su un valore effettivo, ad eccezione degli attributi id e runat. Le proprietà impostate su oggetti, come le proprietà DataSource dei controlli, non possono essere impostate.
  • Qualsiasi proprietà gestore eventi. Il gestore eventi di override si aggiunge ai gestori eventi esistenti senza sostituirli.
  • Qualsiasi attributo personalizzato. Qualsiasi proprietà non riconosciuta viene memorizzata come attributo personalizzato, se la pagina consente la definizione di attributi personalizzati per i controlli.

Nota   L'opzione predefinita deve sempre essere l'ultima opzione in una selezione di dispositivi (diversamente, le opzioni visualizzate dopo quella predefinita non verrebbero valutate in quanto verrebbe selezionata sempre l'opzione predefinita).

Attributi specifici del dispositivo

In un elemento <Choice> è possibile dichiarare un numero qualsiasi di attributi aggiuntivi. In questo modo viene fornito un insieme di proprietà del controllo contenitore in maniera specifica per i dispositivi. Se si seleziona un elemento <Choice> per un controllo, ognuno degli attributi aggiuntivi viene utilizzato per ignorare la proprietà corrispondente del controllo contenitore.

Sintassi dei controlli mobili

Le proprietà necessarie e gli elementi con funzioni di codice vengono evidenziati in grassetto.

<Choice Filter="deviceFilterName"
    Other attributes here.>    templates
</Choice>

Proprietà

Proprietà Descrizione
Filter Specifica il filtro di dispositivo da valutare. Se questa proprietà viene omessa, viene selezionata l'opzione predefinita.
Contents Restituisce le proprietà sottoposte a override definite per un'opzione. La modifica di questa raccolta dopo aver elaborato le proprietà sottoposte a override (in OnDeviceCustomize) non produce alcun effetto.
HasTemplates Restituisce true se per l'elemento <Choice> è definito un modello. In caso contrario, restituisce false.
Templates Restituisce l'insieme di modelli definito per un elemento <Choice>.
xmlns Utilizzata nella finestra di progettazione per determinare il tipo di tag all'interno dei modelli di un'opzione. Non è ideata per l'uso generico da parte degli sviluppatori.

Il nome del filtro deve essere il nome di un metodo della pagina o del file .ascx associato, oppure il nome di un filtro di dispositivo valido definito nella sezione <devicefilters> di Web.config. Se con la proprietà Filter è specificato il nome di un metodo, tale metodo deve corrispondere al prototipo:

public bool methodName(System.Web.Mobile.MobileCapabilities capabilities,
   String optionalArgument)

Se, ad esempio, la proprietà Filter viene impostata su myChoiceMethod, deve esistere un metodo con la seguente firma:

public bool myChoiceMethod(
   System.Web.Mobile.MobileCapabilities capabilities, 
   String optionalArgument
);

Quando si valuta l'elemento Choice, viene effettuato un controllo per determinare se nella pagina esiste un metodo della firma appropriata. In caso contrario, la sezione <devicefilters> di Web.config viene verificata.

Per ulteriori informazioni sulla valutazione di un filtro di dispositivo, vedere Rendering specifico di dispositivo e gli argomenti relativi alla proprietà Filter.

Esempio

Per un esempio dettagliato, vedere la proprietà Filter.

<DeviceSpecific>
   <Choice Filter = isHTML32>
          <HeaderTemplate>
             <mobile:Image runat=server ImageUrl="defaul1.gif"/>
          </HeaderTemplate>
   </Choice>
   <Choice Filter="prefersWBMP">
         <HeaderTemplate>
             <mobile:Image runat=server ImageUrl="default1.wbmp"/>
                  Wbmp Image<br/>
         </HeaderTemplate>
   </Choice>

</Devicespecific>

Vedere anche

Device Template Support | Insiemi di modelli e controlli basati su modelli