Partager via


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