共用方式為


使用裝置的特定樣板

更新:2007 年 11 月

在混合裝置特定的標記與 ASP.NET Mobile 控制項時,您必須根據行動控制項的呈現結果確認其一致性。對於裝置特定和與裝置無關的混合標記,並不支援智慧偵測和調整。

不正確混合的範例

在下列不正確的範例中,如果篩選條件符合裝置能力,<ContentTemplate> 項目的內容便會傳送到該裝置。請注意第一個 Panel 控制項和第二個 Label 控制項上的 alignment 屬性。由於 Label 控制項是在 WML <td> 項目內,所以瀏覽器會不正確地呈現針對 Label 控制項產生的 <p> 項目,因為此項目是位在 <td> 標記 (Tag) 中。

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

當您對 alignment 設定了非預設的設定之後,每個已建立的控制項就會呈現其 <p> 項目。這會產生下列錯誤:

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'

在此情況下,Label 控制項不會繼承第一個 Panel 控制項的對齊方式,因此它會產生其對齊方式的 <p> 項目。然而,這時卻無法加入 <p> 項目。這並非常見情況,但是藉由將 Label 控制項標記為可見的 (只要它不會在 WML 架構裝置上呈現),以及取得指定於樣板內之 Label 控制項文字,便可解決這個問題。請在 Panel 控制項中使用 <table align="left"> 標記進行 WML 呈現。

注意事項:

您可以控制表格的整體對齊,但是無法控制個別儲存格的對齊。

正確的範例

下列範例修正先前的錯誤並包含增加部分,例如頁面指示詞和表單控制項。

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

請參閱

概念

行動控制項的自訂屬性

裝置篩選建議事項

裝置評估方法

擴充的瀏覽器能力

參考

HasCapability

MobileControl