Usando dispositivo-modelos específicos
Quando a combinação de marcação específica do dispositivo com controles móveis do ASP.NET, você deve garantir consistência com base nos quais os controles móveis são renderização.Não há suporte para detecção inteligente e adaptação de marcações específicas do dispositivo e independentes de dispositivo mista.
Exemplo de mixagem incorreto
No exemplo a seguir incorreto, o Sumário do <ContentTemplate> elementos são enviados para o dispositivo se o filtro corresponde a funcionalidade do dispositivo. Observe o alignment propriedade no primeiro Panel controle e, na Label controle. Desde o Label controle está dentro de um WML <td> elemento, o <p> elemento gerado para o Label controle incorretamente é processado pelo navegador porque está dentro do <td> marca.
<mobile:panel alignment="right">
<DeviceSpecific>
<Choice Filter="isWML11">
<ContentTemplate>
<table columns="2" align="LR">
<tr>
<td>
</ContentTemplate>
</Choice>
</Devicespecific>
</mobile:panel>
<mobile:label id="label1" text="HELLO HOW ARE YOU" alignment="left" />
<mobile:panel >
<DeviceSpecific>
<Choice Filter="isWML11">
<ContentTemplate>
</td>
<td>
</ContentTemplate>
</Choice>
</Devicespecific>
</mobile:panel>
Depois que você defina uma configuração não padrão para alignment, um <p> elemento é processado para cada controle criado. O seguinte erro é gerado:
Digest Compile failed.
WML_1.1.DTD(9) : error: Close tag 'p' does not match start tag 'td'
WML_1.1.DTD(9) : error: Invalid element 'p' in content of 'tr'.
Expected td
WML_1.1.DTD(9) : error: Invalid element 'p' in content of 'tr'.
Expected td
WML_1.1.DTD(10) : error: Close tag 'td' does not match start tag 'p'
Nesse caso, a Label controle não herdar o alinhamento da primeira Panel controlar, para que ele gera um <p> elemento para o seu alinhamento. No entanto, um <p> elemento não pode ser adicionado nessa situação. Isso não é uma situação comum, mas você pode contornar o problema, marcando o Label controlar sistema autônomo visível apenas se ele não é renderização de um dispositivo baseado em WML e fazendo com que o texto dos Label controle especificado no modelo. Use o <table align="left"> marca na Panel controle de renderização WML.
Observação: |
---|
Você pode controlar o alinhamento geral de uma tabela, mas não o alinhamento de células individuais. |
Exemplo corrigido
O exemplo a seguir corrigirá sistema autônomo erros anteriores e inclui adições, sistema autônomo diretivas de página e controles de formulário.
<%@ Page Inherits="System.Web.UI.MobileControls.MobilePage" Language ="c#" %>
<Mobile:Form runat=server ID="OrderForm" Title="Submit your Order For pizza">
<Mobile:link runat=server ID="LinkWN1" Text="What's On" Alignment="center">
</Mobile:link>
<mobile:Panel runat=server>
<DeviceSpecific>
<Choice Filter="isWML11">
<ContentTemplate>
<table columns="2"
align="LR">
<tr><td>
</ContentTemplate>
</Choice>
</Devicespecific>
</mobile:panel>
<Mobile:Label id="label1" runat=server
Text="HELLO HOW ARE YOU">
</Mobile:Label>
<mobile:Panel runat=server>
<DeviceSpecific>
<Choice Filter="isWML11">
<ContentTemplate>
</td><td>
</ContentTemplate>
</Choice>
</Devicespecific>
</mobile:panel>
<mobile:Panel runat=server>
<DeviceSpecific>
<Choice Filter="isWML11">
<ContentTemplate>
</td></tr>
</table>
</ContentTemplate>
</Choice>
</Devicespecific>
</mobile:panel>
</Mobile:Form>
<Mobile:Form runat=server ID="WhatisOn" Title="Contains">
<Mobile:Label StyleReference="Title" ID="LblWO2" runat=server Text="Toppings"></Mobile:Label>
</Mobile:Form>
Consulte também
Conceitos
Atributos personalizados para controles móveis
Recomendações de filtragem de dispositivo
Métodos de avaliação do dispositivo
Recursos do navegador estendido