Compatibilidad con plantillas de dispositivos

Actualización: noviembre 2007

La compatibilidad con las plantillas de dispositivos se proporciona como parte de la construcción DeviceSpecific/Choice. La escritura de controles de ASP.NET Mobile que proporcionen plantillas de dispositivos es muy parecida a la escritura de controles de servidor ASP.NET con plantillas. Sin embargo, se deben tener en cuenta las siguientes diferencias que afectan exclusivamente a los controles móviles:

  • Todos los controles móviles que admiten plantillas de dispositivos implementan la interfaz ITemplateable. Se trata de una interfaz de marcador que no tiene métodos.

  • Los controles que admiten plantillas de dispositivos deben tener un modo de representación predeterminado que les permita seguir representándose en los dispositivos aunque no se definan o especifiquen este tipo de plantillas.

  • Los desarrolladores de controles tienen que decidir la forma de tratar las plantillas de dispositivos durante la representación. Una posibilidad consiste en pasar a un modo exclusivamente con plantilla si se define o elige una plantilla de dispositivos. En ese caso, el control realiza todo su proceso de representación utilizando las plantillas proporcionadas. El control List es un ejemplo de este tipo de controles. Como alternativa, los controles pueden usar plantillas en un proceso puramente aditivo: si se define y elige cierta plantilla, ésta puede agregarse a la representación predeterminada o reemplazar parte de la misma. El control Form es un ejemplo de control que tiene este comportamiento.

  • En lugar de exponer propiedades ITemplate, los controles móviles tienen acceso a una colección de plantillas definidas. La clase base MobileControl tiene dos miembros que pueden ayudar a un control a usar plantillas de dispositivos:

    • La propiedad IsTemplated, que indica si el control tiene definida y seleccionada alguna plantilla, como se muestra en el ejemplo de código siguiente.

      if (mobileControl.IsTemplated)
      {
          return true;
      }
      
    • El método GetTemplate, que devuelve la plantilla de dispositivos con el nombre especificado, o null si no se ha definido ninguna. En el ejemplo siguiente se muestra cómo se recupera y se prueba el estado null para las plantillas de dispositivos.

      public override void CreateDefaultTemplatedUI(bool doDataBind) 
          {
              ITemplate headerTemplate = GetTemplate(Constants.HeaderTemplateTag);
              ITemplate footerTemplate = GetTemplate(Constants.FooterTemplateTag);
              ITemplate scriptTemplate = GetTemplate(Constants.ScriptTemplateTag);
              if (headerTemplate != null)
              {
                  _headerContainer = new TemplateContainer();
                  headerTemplate.InstantiateIn(_headerContainer);
                  _headerContainer.EnablePagination = false;
                  Controls.AddAt(0, _headerContainer);
              }
              if (footerTemplate != null)
              {
                  _footerContainer = new TemplateContainer();
                  footerTemplate.InstantiateIn(_footerContainer);
                  _footerContainer.EnablePagination = false;
                  Controls.Add(_footerContainer);
              }
              if (scriptTemplate != null)
              {
                  _scriptContainer = new TemplateContainer();
                  scriptTemplate.InstantiateIn(_scriptContainer);
                  _scriptContainer.EnablePagination = false;
              }
          }
      

En la tabla siguiente se describen las plantillas que están disponibles a través del control Form. Este control Form admite conjuntos de plantillas específicas del dispositivo e independientes del dispositivo.

Plantilla

Descripción

Plantilla de encabezado

La plantilla de encabezado se representa en la parte superior del formulario. Si el formulario está paginado en varias pantallas, todas las pantallas contienen el encabezado. Esta plantilla puede formar parte de un conjunto de plantillas independiente del dispositivo. Si el conjunto de plantillas es independiente del dispositivo, la plantilla de encabezado contiene controles móviles.

Plantilla de pie de página

La plantilla de pie de página se representa en la parte inferior del formulario. Si el formulario está paginado en varias pantallas, todas las pantallas contienen el pie de página. Esta plantilla puede formar parte de un conjunto de plantillas independiente del dispositivo. Si el conjunto de plantillas es independiente del dispositivo, la plantilla de pie de página contiene controles móviles.

Plantilla de secuencia de comandos

La plantilla de secuencia de comandos se representa al principio del formulario. Si el formulario está paginado en varias pantallas, todas las pantallas contienen la plantilla de secuencia de comandos. En los dispositivos HTML, el código de la plantilla de secuencia de comandos se agrega directamente después de la etiqueta <head> de apertura y, en los dispositivos WML, directamente después de la etiqueta <card> de apertura.

Estas plantillas también están disponibles mediante programación. Para obtener más información, vea la propiedad Footer, la propiedad Header y la propiedad Script.

Vea también

Conceptos

Conjuntos de plantillas y controles con plantillas

Implementar representación con plantilla

Otros recursos

Agregar nuevos adaptadores de dispositivos y compatibilidad con dispositivos