Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Aggiornamento: novembre 2007
Quando si utilizzano tag specifici di dispositivi diversi insieme ai controlli mobili ASP.NET, è necessario garantire la congruenza in base agli elementi di cui i controlli mobili eseguono il rendering. Il rilevamento e l'adattamento intelligente per codici misti specifici di dispositivo e indipendenti dal dispositivo non è supportato.
Esempio di combinazione errata
Nell'esempio non corretto riportato di seguito il contenuto degli elementi <ContentTemplate> viene inviato al dispositivo se il filtro corrisponde alla relativa funzionalità. Osservare la proprietà alignment del primo controllo Panel e del controllo Label. Poiché il controllo Label è contenuto in un elemento <td> WML, il browser esegue un rendering errato dell'elemento <p> generato per il controllo Label perché contenuto nel tag <td>.
<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>
Dopo aver definito un'impostazione non predefinita per alignment, viene eseguito il rendering di un elemento <p> per ogni controllo creato. Viene generato l'errore seguente:
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'
In questo caso, non ereditando l'allineamento dal primo controllo Panel, il controllo Label genera un elemento <p> per l'allineamento. Non è tuttavia possibile aggiungere un elemento <p> in questa situazione. Non si tratta di una situazione usuale ma è possibile eludere il problema contrassegnando il controllo Label come visibile solo se non viene eseguito il rendering in un dispositivo basato su WML e specificando il testo del controllo Label nel modello. Utilizzare il tag <table align="left"> nel controllo Panel per il rendering WML.
Nota: |
|---|
È possibile controllare l'allineamento generale di una tabella ma non quello di singole celle. |
Esempio corretto
Nell'esempio che segue vengono corretti gli errori precedenti e vengono inserite aggiunte quali direttive di pagina e controlli di form.
<%@ 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>
Vedere anche
Concetti
Attributi personalizzati per controlli mobili
Suggerimenti per l'applicazione di filtri di periferica
Metodi di valutazione dei dispositivi
Funzionalità estese del browser
Nota: