DeviceSpecificChoice, classe
Fournit un choix unique dans une construction DeviceSpecific/Choice.
Espace de noms : System.Web.UI.MobileControls
Assembly : System.Web.Mobile (dans system.web.mobile.dll)
Syntaxe
'Déclaration
Public Class DeviceSpecificChoice
Implements IParserAccessor, IAttributeAccessor
'Utilisation
Dim instance As DeviceSpecificChoice
public class DeviceSpecificChoice : IParserAccessor, IAttributeAccessor
public ref class DeviceSpecificChoice : IParserAccessor, IAttributeAccessor
public class DeviceSpecificChoice implements IParserAccessor, IAttributeAccessor
public class DeviceSpecificChoice implements IParserAccessor, IAttributeAccessor
Notes
Cette classe est analogue à l'élément <Choice>. Les choix sont testés dans l'ordre dans lequel ils apparaissent dans un élément <DeviceSpecific>. Si vous spécifiez la propriété Filter de l'élément <Choice>, sa valeur doit être le nom d'un filtre de périphérique défini dans la section <deviceFilters> du fichier Machine.config. Au moment de l'exécution, ASP.NET évalue le filtre de périphérique spécifié par rapport aux fonctionnalités du périphérique actuel. En cas de réussite, le choix est sélectionné. Si vous ne spécifiez pas la propriété Filter, les valeurs par défaut de l'élément <Choice> sont sélectionnées.
Exemple
L'exemple de code suivant affiche un élément <Choice> dans une image. L'attribut Source substitue la propriété ImageUrl du contrôle Image.
L'exemple utilise des fonctions pour déterminer si le navigateur requiert WML (isWML11
) ou prend en charge la couleur (supportsColor
). Vous pouvez cependant utiliser un fichier Web.config pour définir un élément <DeviceSpecific> que le .NET Framework utilisera automatiquement pour effectuer cette détermination à votre place.
<deviceFilters>
<filter name="isWML11"
compare="PreferredRenderingType"
argument="wml11" />
<filter name="supportsColor"
compare="IsColor"
argument="true" />
</deviceFilters>
Notes
L'exemple de code suivant utilise un modèle de code de fichier unique ; il est possible qu'il ne fonctionne pas correctement s'il est directement copié dans un fichier code-behind. Cet exemple de code doit être copié dans un fichier texte vide doté d'une extension .aspx. Pour plus d'informations, consultez Modèle de code des pages Web ASP.NET.
<%@ Page Language="VB"
Inherits="System.Web.UI.MobileControls.MobilePage" %>
<%@ Register TagPrefix="mobile"
Namespace="System.Web.UI.MobileControls"
Assembly="System.Web.Mobile" %>
<%@ Import Namespace="System.Web.Mobile" %>
<script runat="server">
Private Function supportsColor(ByVal caps As MobileCapabilities, _
ByVal value As String) As Boolean
' Determine if the browser is not a Web crawler and
' can display in color
If Not caps.Crawler And caps.IsColor Then
Return True
Else
Return False
End If
End Function
Private Function isWML11(ByVal caps As MobileCapabilities, _
ByVal value As String) As Boolean
' Determine if the browser is not a Web crawler and
' requires WML markup
If (Not caps.Crawler) AndAlso caps.PreferredRenderingType = _
MobileCapabilities.PreferredRenderingTypeWml11 Then
Return True
Else
Return False
End If
End Function
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<body>
<mobile:form id="form1" runat="server">
<mobile:Image ID="Image1" runat="server"
AlternateText="Cannot display this image.">
<DeviceSpecific>
<choice Filter ="isWML11" ImageURL="wmlImage.wbmp" />
<choice Filter="supportsColor" ImageURL="colorImage.gif" />
<choice ImageURL="monoImg.gif" />
</DeviceSpecific>
</mobile:Image>
</mobile:form>
</body>
</html>
<%@ Page Language="C#"
Inherits="System.Web.UI.MobileControls.MobilePage" %>
<%@ Register TagPrefix="mobile"
Namespace="System.Web.UI.MobileControls"
Assembly="System.Web.Mobile" %>
<%@ Import Namespace="System.Web.Mobile" %>
<script runat="server">
private bool supportsColor(MobileCapabilities caps, string optValue)
{
// Determine if the browser is not a Web crawler and
// can display in color
if (!caps.Crawler && caps.IsColor)
return true;
return false;
}
private bool isWML11(MobileCapabilities caps, string optValue)
{
// Determine if the browser is not a Web crawler and
// requires WML markup
if (!caps.Crawler && caps.PreferredRenderingType ==
MobileCapabilities.PreferredRenderingTypeWml11)
return true;
return false;
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<body>
<mobile:form id="form1" runat="server">
<mobile:Image ID="Image1" runat="server"
AlternateText="Cannot display this image.">
<DeviceSpecific>
<choice Filter ="isWML11" ImageURL="wmlImage.wbmp" />
<choice Filter="supportsColor" ImageURL="colorImage.gif" />
<choice ImageURL="monoImg.gif" />
</DeviceSpecific>
</mobile:Image>
</mobile:form>
</body>
</html>
Sécurité .NET Framework
- AspNetHostingPermission pour opérer dans un environnement hébergé. Valeur de demande : LinkDemand ; valeur d'autorisation : Minimal
- AspNetHostingPermission pour opérer dans un environnement hébergé. Valeur de demande : InheritanceDemand ; valeur d'autorisation : Minimal
Hiérarchie d'héritage
System.Object
System.Web.UI.MobileControls.DeviceSpecificChoice
Sécurité des threads
Les membres statiques publics (Shared en Visual Basic) de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.
Plates-formes
Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Édition Media Center, Windows XP Professionnel Édition x64, Windows XP SP2, Windows XP Starter Edition
Le .NET Framework ne prend pas en charge toutes les versions de chaque plate-forme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise.
Informations de version
.NET Framework
Prise en charge dans : 2.0, 1.1
Voir aussi
Référence
Membres DeviceSpecificChoice
System.Web.UI.MobileControls, espace de noms
Autres ressources
Introduction au contrôle DeviceSpecific
<Choice>, élément (Guide du développeur .NET Framework)
<DeviceSpecific>, élément