この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

ページへの連動項目の追加

連動項目では、Visualforce ページに表示される項目の値を絞り込むことができます。連動項目は、条件を決定する制御項目と、値が条件で絞り込まれた連動項目の 2 つで構成されます。連動項目は、選択リスト、複数選択リスト、ラジオボタン、およびチェックボックスなどの項目の値を動的に絞り込むことができます。連動選択リストは、Salesforce API バージョン 19.0 以降を使用する Visualforce ページでのみ表示できます。

この例では、連動選択リスト (サブカテゴリ) を Visualforce ページに追加します。まず、カスタム選択リストを作成します。
  1. 取引先のオブジェクト管理設定から項目領域に移動し、[新規] をクリックします。
  2. [選択リスト] を選択してから、[次へ] をクリックします。
  3. [項目の表示ラベル] に「サブカテゴリ」と入力します。
  4. 値のリストに次の語句を入力します。
    • りんご農場
    • ケーブル
    • とうもろこし畑
    • インターネット
    • ラジオ
    • テレビ
    • ワイナリー
  5. [次へ] を 2 回クリックし、[保存] をクリックします。
サブカテゴリの項目の連動関係を定義する手順は、次のとおりです。
  1. 取引先のオブジェクト管理設定から、項目領域に移動します。
  2. [項目の連動関係] をクリックします。
  3. [新規] をクリックします。
  4. 制御項目として [業種] を、連動項目として [サブカテゴリ] を選択します。
  5. [続行] をクリックします。
  6. 制御項目の各値 (業種) は、一番上の行にリストされており、連動項目の各値 (サブカテゴリ) はその下の列に表示されます。この画像に一致するように、項目の連動関係を設定します。
    サブカテゴリの項目の連動関係マトリックス サブカテゴリの項目の連動関係マトリックス
    上記に表示されていない他の [業種] の種別は無視できます。
  7. [保存] をクリックします。
次のような dependentPicklists という Visualforce ページを作成します。
1<apex:page standardController="Account">
2    <apex:form >
3        <apex:pageBlock mode="edit">
4            <apex:pageBlockButtons >
5                <apex:commandButton action="{!save}" value="Save"/>
6            </apex:pageBlockButtons>
7            <apex:pageBlockSection title="Dependent Picklists" columns="2">
8            <apex:inputField value="{!account.industry}"/>
9            <apex:inputField value="{!account.subcategories__c}"/>
10            </apex:pageBlockSection>
11        </apex:pageBlock>
12    </apex:form>
13</apex:page>
[業種] 選択リストから [農業] を選択すると、サブカテゴリ選択リストには [りんご農場]、[とうもろこし畑]、および [ワイナリー] が表示されます。[通信] を選択すると、[サブカテゴリ] 選択リストには、上記で定義したすべての通信の種別の項目が表示されます。

連動選択リストの考慮事項

Visualforce ページで連動選択リストを使用するときは、次の点に留意してください。
  • 選択リスト、複数選択リスト、ラジオボタン、およびチェックボックスなどのさまざまな項目の種別で制御項目と連動項目を混在させて使用できます。
  • 1 つのページに使用できる連動選択リストのペアは最大 10 個です。これはすべてのオブジェクトで合計されます。したがって、Account オブジェクトに 5 つの連動選択リストを使用し、Contact オブジェクトに 5 つの連動選択リストを使用できますが、それ以上使用することはできません。ただし、連動選択リストの同じペアを <apex:repeat> などの反復タグで繰り返し使用することができ、この場合、制限との関係では 1 回のみ反映されます。
  • 連動選択リストを使用する場合、ページに制御項目を含める必要があります。ページに制御項目が含まれていない場合、ページを表示するときにランタイムエラーが発生します。

    API バージョン 26.0 以前を使用していて、ページを表示しているユーザーに制御項目への参照のみのアクセス権がある場合、連動選択リストには、参照のみの値で絞り込まれる代わりに、選択可能なすべての値が表示されてしまいます。これは Visualforce の既知の制限です。

    メモ

  • インライン編集を有効にした項目と同じ連動関係グループの通常の入力項目を混合しないでください。たとえば、制御項目の標準の入力項目とインライン編集を有効にした連動項目は混合しないでください。
    1<apex:page standardController="Account">
    2    <apex:form>
    3        <!-- Don't mix a standard input field... -->
    4        <apex:inputField value="{!account.Controlling__c}"/>
    5        <apex:outputField value="{!account.Dependent__c}">
    6            <!-- ...with an inline-edit enabled dependent field -->
    7            <apex:inlineEditSupport event="ondblClick" />
    8        </apex:outputField>
    9    </apex:form>
    10</apex:page>
  • インライン編集を有効にした連動選択リストと Ajax スタイルの部分ページ更新を組み合わせる場合は、相互に連動または制御関係にあるすべての項目を 1 つのグループとして更新します。項目を個別に更新することはお勧めしません。元に戻す動作またはやり直す動作の一貫性がなくなる場合があります。インライン編集を有効にした連動選択リストがあるフォームを部分更新する方法の推奨例を次に示します。
    1<apex:form>
    2    <!-- other form elements ... -->
    3
    4    <apex:outputPanel id="locationPicker">
    5        <apex:outputField value="{!Location.country}"> 
    6            <apex:inlineEditSupport event="ondblClick" /> 
    7        </apex:outputField>
    8        <apex:outputField value="{!Location.state}"> 
    9            <apex:inlineEditSupport event="ondblClick" /> 
    10        </apex:outputField>
    11        <apex:outputField value="{!Location.city}"> 
    12            <apex:inlineEditSupport event="ondblClick" /> 
    13        </apex:outputField>
    14    </apex:outputPanel>
    15    <!-- ... -->
    16    <apex:commandButton value="Refresh Picklists" reRender="locationPicker" />
    17</apex:form>
    インライン編集を有効にした選択リストのすべてが <apex:outputPanel> コンポーネントでラップされています。<apex:outputPanel><apex:commandButton> アクションメソッドが起動すると表示されます。