Partager via


<Choice>, élément (Guide du développeur .NET Framework)

Mise à jour : novembre 2007

Fournit un choix unique parmi un ensemble de choix dans une construction <DeviceSpecific>/<Choice>. Lors du rendu, l'un des choix compris dans un élément <DeviceSpecific> est sélectionné d'après les caractéristiques du périphérique cible.

Un élément <Choice> peut contenir n'importe quel nombre de modèles. Si un élément <Choice> contient des modèles, il peut être utilisé en tant qu'ensemble de modèles. Pour plus d'informations, consultez Ensembles de modèles et contrôles basés sur un modèle.

L'élément <Choice> peut également contenir des propriétés qui se substituent aux propriétés du contrôle ou du style parent. Les types de propriétés suivants peuvent être substitués :

  • Toutes les propriétés auxquelles il est possible d'affecter de façon déclarative une valeur littérale, à l'exception des attributs ID et runat. Les propriétés affectées à des objets, telles que les propriétés DataSource des contrôles, ne peuvent pas être définies.

  • Toutes les propriétés de gestionnaire d'événements. Le gestionnaire d'événements de substitution s'ajoute aux gestionnaires d'événements existants, mais ne les remplace pas.

  • Tous les attributs personnalisés. Toute propriété non reconnue est stockée en tant qu'attribut personnalisé, si la page autorise la définition d'attributs personnalisés pour les contrôles.

    Remarque :

    Le choix par défaut doit toujours être le dernier choix dans une liste de sélection de périphérique (sinon, les choix qui figurent après le choix par défaut ne sont jamais évalués, car le choix par défaut est toujours sélectionné). Vous pouvez déclarer n'importe quel nombre d'attributs supplémentaires dans un élément <Choice>. Ainsi, vous pouvez définir les propriétés du contrôle conteneur en fonction du périphérique. Lorsqu'un élément <Choice> est sélectionné pour un contrôle, chacun des attributs supplémentaires est utilisé pour substituer la propriété correspondante du contrôle conteneur.

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

Propriétés

Propriété

Description

Filter

Spécifie le filtre de périphérique à évaluer. Si cette propriété est omise, le choix est sélectionné par défaut.

Contents

Retourne les propriétés substituées définies pour un choix. La modification de cette collection une fois que les propriétés substituées ont été traitées (dans OnDeviceCustomize) n'a aucun effet.

HasTemplates

Retourne la valeur true si l'élément <Choice> possède des modèles définis ; sinon, retourne la valeur false.

Templates

Retourne l'ensemble de modèles défini pour un élément <Choice>.

Xmlns

Permet au concepteur de déterminer le type de balisage contenu dans les modèles d'un élément <Choice>. Non destinée à être utilisée de manière générale par les développeurs.

Le nom du filtre doit correspondre au nom d'une méthode contenue dans la page ou le fichier .ascx associé, ou au nom d'un filtre de périphérique valide défini dans la section <deviceFilters> du fichier Web.config. Si le nom d'une méthode est spécifié avec la propriété Filter, cette méthode doit posséder la signature suivante :

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

Par exemple, si la propriété Filter a la valeur myChoiceMethod, une méthode ayant la signature suivante doit exister :

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

Lors de l'évaluation de l'élément <Choice>, un contrôle est effectué pour déterminer s'il existe une méthode possédant la signature appropriée sur la page. Si cette méthode n'existe pas, la section <deviceFilters> du fichier Web.config est vérifiée.

Pour plus d'informations sur l'évaluation de filtre de périphérique, consultez la rubrique Rendu spécifique au périphérique et la documentation pour la propriété Filter.

Description

Pour obtenir un exemple détaillé, consultez la propriété Filter.

Code

<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>

Voir aussi

Concepts

Rendu spécifique au périphérique

Prise en charge des modèles de périphériques

Ensembles de modèles et contrôles basés sur un modèle

Référence

<deviceFilters>