<Choice>, élément
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 Jeux 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 qui ont des valeurs d'objets, comme 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é).
Attributs spécifiques au périphérique
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.
Syntaxe des contrôles mobiles
Les propriétés et les éléments de code requis sont indiqués en caractères gras.
<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 par défaut est retenu. |
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. Retourne la valeur false dans le cas contraire. |
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 choix. 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 correspondre au prototype :
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 contrôlé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 celle consacrée à la propriété Filter.
Exemple
Pour obtenir un exemple détaillé, consultez la propriété 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>
Voir aussi
Prise en charge des modèles de périphériques | Jeux de modèles et contrôles basés sur un modèle