Condividi tramite


Elemento <Choice> (Guida per gli sviluppatori di .NET Framework)

Aggiornamento: novembre 2007

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

In un elemento <Choice> può essere contenuto un numero illimitato di modelli. Se un elemento <Choice> include modelli, può essere utilizzato come insieme di modelli. Per informazioni dettagliate, vedere Insiemi di modelli e controlli basati su modelli.

Nell'elemento <Choice> possono essere incluse anche 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à che può essere impostata in modo dichiarativo su un valore letterale, ad eccezione degli attributi ID e runat. Le proprietà impostate su oggetti, ad esempio 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. In caso contrario, le opzioni visualizzate dopo quella predefinita non verranno valutate in quanto verrà selezionata sempre l'opzione predefinita. In un elemento <Choice> è possibile dichiarare un numero illimitato 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 eseguire l'override della proprietà corrispondente del controllo contenitore.

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

Proprietà

Proprietà

Descrizione

Filter

Specifica il filtro di periferica da valutare. Se questa proprietà viene omessa, l'opzione viene selezionata per impostazione predefinita.

Contents

Restituisce le proprietà sottoposte a override definite per un'opzione. La modifica di questo insieme dopo l'elaborazione delle proprietà sottoposte a override (in OnDeviceCustomize) non produce alcun effetto.

HasTemplates

Restituisce true se nell'elemento <Choice> sono contenuti modelli definiti, altrimenti 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 elemento <Choice>. Non è ideata per l'uso generico da parte degli sviluppatori.

Il nome del filtro deve essere il nome di un metodo incluso nella pagina o nel file ascx associato oppure deve essere il nome di un filtro di periferica valido definito nella sezione <deviceFilters> del file Web.config. Se il nome di un metodo viene specificato con la proprietà Filter, tale metodo deve contenere la firma indicata di seguito:

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

Se ad esempio la proprietà Filter è impostata su myChoiceMethod, è necessario che sia presente un metodo con la firma riportata di seguito:

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. Se il metodo non è presente, viene controllata la sezione <deviceFilters> del file Web.config.

Per ulteriori informazioni sulla valutazione del filtro di periferica, vedere Rendering specifico di dispositivo e la documentazione relativa alla proprietà Filter.

Descrizione

Per un esempio dettagliato, vedere la proprietà Filter.

Codice

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

Vedere anche

Concetti

Rendering specifico di dispositivo

Supporto del modello di dispositivo

Insiemi di modelli e controlli basati su modelli

Riferimenti

<deviceFilters>