次の方法で共有


<Choice> 要素 (.NET Framework 開発者ガイド)

更新 : 2007 年 11 月

<DeviceSpecific>/<Choice> コンストラクトにある選択項目のセットから項目を 1 つを選択します。レンダリング時に <DeviceSpecific> 要素内の選択項目の 1 つがターゲット デバイスの特性に基づいて選択されます。

<Choice> 要素には、テンプレートを任意の数だけ含めることができます。<Choice> 要素が複数のテンプレートを含む場合、この要素はテンプレートのセットとして使用できます。詳細については、「テンプレート セットとテンプレート コントロール」を参照してください。

また、<Choice> 要素には、親コントロールやスタイルのプロパティをオーバーライドするプロパティも含めることができます。次の型のプロパティをオーバーライドできます。

  • リテラル値を宣言して設定できるプロパティ (ただし ID 属性と runat 属性は除く)。コントロールの DataSource プロパティなど、オブジェクトに設定されているプロパティは設定できません。

  • イベント ハンドラ プロパティ。オーバーライドするイベント ハンドラを既存のイベント ハンドラに追加できますが、置き換えることはできません。

  • カスタム属性。認識されないがカスタム属性として格納されているプロパティ (ページ内でコントロール用のカスタム属性を定義できる場合)。

    3tfbhf6f.alert_note(ja-jp,VS.90).gifメモ :

    既定の選択項目は、デバイスの選択肢にある最後の選択項目であることが必要です。最後にない場合、既定の選択項目の後にある項目が評価されることはありません。これは既定の選択項目が必ず選択されるためです。<Choice> 要素内には任意の数だけ属性を追加宣言できます。これにより、デバイス固有の条件に基づいて、オブジェクトが含まれるコントロールのプロパティを設定する手段が得られます。あるオブジェクトが含まれるコントロールに <Choice> 要素を選択した場合、追加された属性を使用して、このコントロールに対応するプロパティをオーバーライドします。

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

プロパティ

プロパティ

説明

Filter

評価するデバイス フィルタを指定します。省略した場合、既定値が選択されます。

Contents

選択項目用に定義されているオーバーライドされたプロパティを返します。オーバーライドされたプロパティが (OnDeviceCustomize で) 処理されてからこのコレクションを変更しても、変更は反映されません。

HasTemplates

<Choice> 要素にテンプレートが定義されている場合は、true を返します。それ以外の場合は、false を返します。

Templates

<Choice> 要素に定義されたテンプレート セットを返します。

Xmlns

<Choice> 要素のテンプレートの内側にあるマークアップの種類を判断するのに設計者が使用します。通常の開発者による使用を意図したものではありません。

フィルタ名は、ページまたは .ascx ファイルにあるメソッドの名前、または Web.config ファイルの <deviceFilters> セクションに定義されている有効なデバイス フィルタの名前にする必要があります。Filter プロパティでメソッド名を指定する場合は、そのメソッドが次のシグネチャを持つ必要があります。

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 runat="server" ImageUrl="default1.wbmp" />
        Wbmp Image<br />
    </HeaderTemplate>
  </Choice>
</DeviceSpecific>

参照

概念

デバイス固有のレンダリング

デバイス テンプレート サポート

テンプレート セットとテンプレート コントロール

参照

<deviceFilters>