共用方式為


<Choice> 項目 (.NET Framework 開發人員手冊)

更新:2007 年 11 月

提供 <DeviceSpecific>/<Choice> 建構內一組選擇中的單一選擇。在呈現期間,會根據目標裝置的特性在 <DeviceSpecific> 項目內選取其中一個選擇。

<Choice> 項目可包含任何數目的樣板。如果 <Choice> 項目包含樣板,它就可當做樣板集使用。如需詳細資訊,請參閱樣板集和樣板化控制項

<Choice> 項目也可包含用於覆寫父控制項或樣式之屬性的屬性。以下列出可覆寫的屬性類型:

  • 任何能夠以宣告方式設定為常值 (Literal) 的屬性 (Property),但是 ID 和 runat屬性 (Attribute) 除外。無法設定已設定為物件的屬性,例如控制項的 DataSource 屬性。

  • 任何事件處理常式屬性。覆寫事件處理常式會加入至現有事件處理常式,但不會取代現有事件處理常式。

  • 任何自訂屬性。如果頁面允許定義控制項的自訂屬性 (Attribute),則會將無法辨識的任何屬性 (Property) 儲存為自訂屬性 (Attribute)。

    注意事項:

    在裝置選取項目中,預設選擇應該永遠都是最後的選擇 (否則出現在預設選擇後面的選擇永遠不會進行評估,因為每次都是選取預設選擇)。您可在 <Choice> 項目內宣告任何數量的額外屬性。這提供以裝置特定基礎方式來設定包含控制項的屬性。當選取控制項的 <Choice> 項目時,這些額外屬性 (Attribute) 中的每一個都會用來覆寫包含控制項的相對應屬性 (Property)。

<Choice Filter="deviceFilterName"
    Other attributes here.>
        templates
</Choice>

屬性

屬性

描述

Filter

指定要評估的裝置篩選條件。如果省略此屬性,則會根據預設選取選擇。

Contents

傳回為選擇定義的覆寫屬性。在覆寫屬性已經過處理之後變更這個集合 (在 OnDeviceCustomize 中) 並不會產生任何作用。

HasTemplates

如果 <Choice> 項目有定義任何樣板,則傳回 true,否則傳回 false。

Templates

傳回為 <Choice> 項目定義的樣板集。

Xmlns

由設計工具使用,以決定 <Choice> 項目之樣板內部的標記類型。不是供一般開發人員使用。

篩選條件名稱必須是在頁面或在關聯 .ascx 檔中之方法的名稱,或是定義於 Web.config 檔 <deviceFilters> 區段中的有效裝置篩選條件名稱。如果方法名稱是以 Filter 屬性指定,該方法就必須具有下列簽章 (Signature):

public bool methodName(
    System.Web.Mobile.MobileCapabilities capabilities,
    String optionalArgument)

例如,如果 Filter 屬性設定為 myChoiceMethod,這時一定會存在包含下列簽章的方法。

public bool myChoiceMethod(
    System.Web.Mobile.MobileCapabilities capabilities, 
    String optionalArgument)

當評估 <Choice> 項目時,會進行檢查以決定頁面上是否存在適當簽章的方法。如果不存在,便會檢查 Web.config 檔的 <deviceFilters> 區段。

如需裝置篩選條件評估的詳細資訊,請參閱裝置的特定呈現Filter 屬性的文件。

描述

如需詳細範例,請參閱 Filter 屬性。

錯誤碼

<DeviceSpecific>
  <Choice Filter = "isHTML32">
    <HeaderTemplate>
      <mobile:Image runat=server ImageUrl="defaul1.gif" />
    </HeaderTemplate>
  </Choice>
  <Choice Filter="prefersWBMP">
    <HeaderTemplate>
      <mobile:Image  ImageUrl="default1.wbmp" />
        Wbmp Image<br />
    </HeaderTemplate>
  </Choice>
</DeviceSpecific>

請參閱

概念

裝置的特定呈現

裝置樣板支援

樣板集和樣板化控制項

參考

<deviceFilters>