Compartir a través de


Controles de servidor ASP.NET y funciones del explorador

Diferentes exploradores, y sus distintas versiones, son compatibles con funciones diferentes. Los controles de servidor ASP.NET determinan de forma automática el nivel del explorador que ha solicitado la página .aspx y asignan al HTML que éste genera el formato correcto para él. No obstante, algunas funciones del control podrían no procesarse en los exploradores más antiguos, por lo que es conveniente examinar el resultado de las páginas en el mayor número posible de exploradores para asegurarse de que éstas se presentan en todos los exploradores en la forma ideada.

Detección automática de tipos de explorador

De manera predeterminada, el marco de trabajo de páginas ASP.NET determina la capacidad del explorador leyendo la información del agente de usuario pasada desde el explorador al servidor durante una solicitud. Esta información está disponible como la propiedad UserAgent del objeto HttpRequest.) La página compara la información del agente de usuario con las entradas de agente del archivo de configuración (.config) de la aplicación, el sitio o el equipo. Cuando la página encuentra una coincidencia entre la información del agente de usuario actual y los agentes de usuario enumerados en el archivo, puede leer las funciones correspondientes del explorador; por ejemplo, si admite secuencias de comandos, estilos, marcos, etc. En función de esta capacidad, los controles de la página representan controles Web utilizando elementos HTML de alto nivel (compatibles con CSS) o de bajo nivel (no compatibles con CSS).

Anular la detección de tipo de explorador

Si desea controlar explícitamente cómo se representa la página, en lugar de utilizar la detección automática de explorador, puede definir la propiedad ClientTarget de la página. Puede hacer esto en la ventana Propiedad o en la vista HTML. El valor de la propiedad se almacena como un atributo de la directiva @ Page de esa página.

El valor de la propiedad ClientTarget es un alias para el tipo de explorador para el que desee representar la página. De manera predeterminada, están disponibles los siguientes alias:

  • ie4   Representa con funciones de Internet Explorer 4.
  • ie5   Representa con funciones de Internet Explorer 5.
  • uplevel   Representa con funciones de Internet Explorer 4.
  • downlevel   Representa con funciones de HTML 3.2; es decir, sin compatibilidad con CSS.

Los alias anteriores se definen en el elemento <clientTarget> del archivo .config del equipo para el servidor y se asignan a información de agente de usuario específica. Por ejemplo, el alias "ie5" se asigna a la información de agente de usuario que suele devolver Internet Explorer 5.

Si especifica "downlevel", puede forzar la página a representar elementos compatibles con HTML 3.2 independientemente del explorador que haya solicitado la página. De manera similar, si especifica "ie5", puede forzar la página para que represente atributos de estilo CSS incluso para exploradores de bajo nivel.

Puede crear alias adicionales definiéndolos en el archivo .config o Web.config del equipo, lo que permite crear definiciones de explorador personalizadas. Para obtener más información, vea Esquema de configuración de ASP.NET.

Nota   La propiedad ClientTarget de la página permite especificar cómo se representa la página en tiempo de ejecución, pero no se utiliza en tiempo de diseño en el Diseñador de Web Forms de Visual Studio. Para especificar un tipo de explorador para generar elementos HTML, validar HTML y proporcionar las opciones HTML correspondientes para la finalización de instrucciones, defina la propiedad targetSchema de la página.

Secuencias de comandos de cliente

Algunas funcionalidades de los controles de servidor ASP.NET dependen de su capacidad para ejecutar secuencias de comandos de cliente, que se generan automáticamente y se envían como parte de la página, si el explorador tienen capacidad para ejecutarlas. Incluso en este caso, algunos usuarios podrían haber desactivado la ejecución de las secuencias de comandos en su explorador, por lo que no podrían sacar el máximo partido de las posibilidades del control. Para obtener más información, vea Secuencias de comandos del cliente en páginas de formularios Web Forms.

Funciones del explorador de nivel inferior y superior

Los exploradores y los dispositivos de cliente se dividen en dos grupos distintivos: de alto nivel y de bajo nivel. Estos grupos definen el tipo de compatibilidad original que ofrece el explorador o el dispositivo de cliente y generalmente determinan la presentación y el comportamiento de una página cargada desde un servidor Web.

Los exploradores y dispositivos de cliente de alto nivel suelen admitir como mínimo lo siguiente:

  • ECMAScript (JScript, JavaScript) versión 1.2.
  • HTML versión 4.0
  • Modelo de objetos de documento de Microsoft (MSDOM)
  • Hojas de estilos en cascada (CSS)

Los exploradores y dispositivos de cliente de bajo nivel sólo son compatibles con lo siguiente:

  • HTML versión 3,2

Las siguientes propiedades de los controles de servidor se procesan de manera diferente en los exploradores de nivel superior e inferior:

  • AccessKey no funciona en ningún control en los exploradores de nivel inferior. No es HTML 4.0 y sólo funciona en Microsoft Internet Explorer 4 o posterior.
  • BackColor sólo funciona en algunos controles en los exploradores de nivel inferior: Table, Panel, DataGrid, Calendar y ValidationSummary. También funciona en los controles CheckBoxList, RadioButtonList y DataList si el diseño es una tabla. En general, solamente los controles que se procesan como una etiqueta <table> pueden producir un color de fondo en HTML 3.2, mientras que esto es posible para casi todos ellos en HTML 4.0. Para los controles que se procesan en etiquetas <span>, incluidos Labels, controles de validación y controles de lista en modo de flujo, BackColor funciona en Internet Explorer 5 o posterior, pero no en Internet Explorer 4.
  • BorderColor funciona en los exploradores de nivel inferior solamente en los mismos controles basados en tablas que BackColor. No obstante, su resultado es el atributo "bordercolor", que no forma parte del estándar HTML 3.2. Aunque algunos exploradores aceptan este atributo, incluidos Internet Explorer 3.0 y posteriores, no ocurre así con todos ellos.
  • BorderStyle no funciona en ningún explorador de nivel inferior. No existe un equivalente para él en HTML 3.2.
  • BorderWidth sólo funciona en los controles que se procesan como <table> (Table, Panel, DataGrid y Calendar) o como <img> (Image, AdRotator). Funcionará únicamente en exploradores de bajo nivel si se especifica en píxeles; de lo contrario, se representará siempre como border=1 o border=0. Asimismo, BorderWidth funciona únicamente con controles basados en tablas si se define GridLines con un valor distinto de None. Esto se debe a que en HTML 3.2 no existe ningún medio para especificar un borde sin líneas de cuadrícula. Para los controles que se procesan como etiquetas <span>, incluidos Labels, controles de validación y controles de lista en modo de flujo, BorderWidth funciona en Internet Explorer 5 o posterior, pero no en Internet Explorer 4.
  • CssClass siempre se procesa como el atributo de clase, con independencia del explorador. La mayoría de los exploradores de nivel superior reconocen el atributo de clase.
  • Enabled permite especificar si un control inicia sus eventos y funciones. En Internet Explorer 4 o posterior, el efecto de establecer Enabled en false hace que el control parezca estar bloqueado y no disponible desde la entrada, como si se utilizara el atributo "disabled=true".
  • Font-Bold, Font-Italic, Font-Strikeout y propiedades similares se representan como atributos de estilo para exploradores de alto nivel (por ejemplo, Font-Weight para negrita y Font-Style para cursiva), y como elementos independientes (por ejemplo, <b> e <i>) para exploradores de bajo nivel.
  • Font-Size funciona en los exploradores de nivel inferior para todos los controles solamente si se utilizan tamaños de fuente con nombre (Small, Smaller, etc.). En exploradores de alto nivel, esta propiedad se representa como un atributo de estilo; en exploradores de bajo nivel, se representa como un elemento <font>.
  • Font-Overline no funciona en ningún explorador de nivel inferior.
  • ForeColor funciona en todos los controles de los exploradores de nivel inferior excepto Image, AdRotator, HyperLink y LinkButton. En los exploradores de nivel inferior, ForeColor se procesa en las etiquetas <font>.
  • Height no funciona en los controles Labels, controles de validación, HyperLink o LinkButton de los exploradores de nivel inferior. Height tampoco funciona en los controles CheckBoxList, RadioButtonList y DataList si el diseño es Flow. Sólo funcionan las medidas en píxeles y en porcentaje. En los controles basados en tablas, esto es HTML no estándar y sólo funciona en los exploradores de nivel superiores más modernos.
  • TabIndex no funciona en ningún control en los exploradores de nivel inferior. No es HTML 4.0 y sólo funciona en Internet Explorer 4.0 o posterior.
  • ToolTip no funciona en ningún explorador de nivel inferior.
  • Width no funciona en los controles Labels, controles de validación, HyperLink o LinkButton de los exploradores de nivel inferior. Width tampoco funciona en los controles CheckBoxList, RadioButtonList y DataList si el diseño es Flow. Sólo funcionan las medidas en píxeles y en porcentaje.

Table, Calendar, DataList, DataGrid, RadioButtonList y CheckBoxList

  • GridLines en HTML 3.2 sólo puede estar activado o desactivado. Se procesa cualquier valor para las líneas de la cuadrícula horizontales y verticales. Como se ha mencionado antes, si GridLines se establece en None, no se puede utilizar un borde.

Calendar

  • ForeColor solamente se pasa a los vínculos mostrados por el control Calendar en los exploradores de nivel superior de la versión 4.0 o posterior, ya que utiliza un atributo de estilo para asignar el color del vínculo.

Vea también

Detectar tipos de exploradores en formularios Web Forms | Programar formularios Web Forms