<Choice> (Elemento, Guía del desarrollador de .NET Framework)

Actualización: noviembre 2007

Proporciona una opción única entre un conjunto de opciones de una construcción <DeviceSpecific>/<Choice>. Durante la representación, se selecciona una de las opciones de un elemento <DeviceSpecific> en función de las características del dispositivo de destino.

Un elemento <Choice> puede incluir cualquier número de plantillas. Si un elemento <Choice> incluye plantillas, se puede utilizar como un conjunto de plantillas. Para obtener información detallada, vea Conjuntos de plantillas y controles con plantillas.

El elemento <Choice> también puede incluir propiedades que reemplacen propiedades del estilo o control principal. Se pueden reemplazar los tipos de propiedades siguientes:

  • Cualquier propiedad que se pueda establecer de forma declarativa en un valor literal, con excepción de los atributos ID y runat. No se pueden definir las propiedades que se establecen en objetos, como las propiedades DataSource de los controles.

  • Cualquier propiedad de controlador de eventos. El controlador de eventos se agrega a los controladores de evento existentes, pero no los reemplaza.

  • Cualquier atributo personalizado. Las propiedades que no se reconocen se almacenan como atributos personalizados si la página permite la definición de atributos personalizados para controles.

    Nota:

    La opción predeterminada siempre debe ser la última opción en la selección de un dispositivo (de lo contrario, las opciones que aparecen después de la opción predeterminada nunca se evaluarán, porque ésta siempre estará seleccionada). Se puede declarar cualquier número de atributos adicionales en un elemento <Choice>. Esta acción proporciona un procedimiento para establecer propiedades del control contenedor basándose específicamente en dispositivos. Cuando se selecciona un elemento <Choice> para un control, cada uno de los atributos adicionales se utiliza para reemplazar la propiedad correspondiente del control contenedor.

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

Propiedades

Propiedad

Descripción

Filter

Especifica el filtro de dispositivo que se va a evaluar. Si se omite esta propiedad, la opción se selecciona de forma predeterminada.

Contents

Devuelve las propiedades reemplazadas definidas para una opción. El cambio de esta colección después del procesamiento de las propiedades reemplazadas (en OnDeviceCustomize) no tendrá efecto.

HasTemplates

Devuelve true si el elemento <Choice> tiene alguna plantilla definida; de lo contrario, devuelve false.

Templates

Devuelve el conjunto de plantillas definido para un elemento <Choice>.

Xmlns

El diseñador utiliza esta propiedad para determinar el tipo de marcado en las plantillas de un elemento <Choice>. No está prevista para ser utilizada por desarrolladores.

El nombre del filtro debe corresponderse con el de un método de la página o del archivo .ascx asociado, o con el nombre de un filtro de dispositivos válido definido en la sección <deviceFilters> del archivo Web.config. Si se especifica el nombre de un método con la propiedad Filter, dicho método debe tener la firma siguiente:

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

Por ejemplo, si se establece la propiedad Filter en myChoiceMethod, debe existir un método con la siguiente firma:

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

Cuando se evalúa el elemento <Choice>, se realiza una comprobación para determinar si existe en la página un método de la firma apropiada. Si no, se comprueba la sección <deviceFilters> del archivo Web.config.

Para obtener más información acerca de la evaluación de filtros de dispositivo, vea Representación específica de dispositivos y la documentación relativa a la propiedad Filter.

Descripción

Para obtener un ejemplo detallado, vea la propiedad Filter.

Código

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

Vea también

Conceptos

Representación específica de dispositivos

Compatibilidad con plantillas de dispositivos

Conjuntos de plantillas y controles con plantillas

Referencia

<deviceFilters>