<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>
屬性
屬性 |
描述 |
---|---|
指定要評估的裝置篩選條件。如果省略此屬性,則會根據預設選取選擇。 |
|
傳回為選擇定義的覆寫屬性。在覆寫屬性已經過處理之後變更這個集合 (在 OnDeviceCustomize 中) 並不會產生任何作用。 |
|
如果 <Choice> 項目有定義任何樣板,則傳回 true,否則傳回 false。 |
|
傳回為 <Choice> 項目定義的樣板集。 |
|
由設計工具使用,以決定 <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>