2011-04-13

Force.com : 任意のチェックボックスを作成したい[Visualforceタグ]


任意のチェックボックスを作成したい (<apex:selectCheckboxes>)



◆ <apex:selectCheckboxes> コンポーネント

<apex:page controller="SampleController">
    <apex:form>
        <apex:selectCheckboxes value="{!(選択値)}" >
            <apex:selectOptions value="{!(選択オプション)}"/>
        </apex:selectCheckboxes>
    </apex:form>
</apex:page>

属性備考
disabled="(true|false)"
  • 無効の状態で表示するかを指定する
  • デフォルト : false
  • 型 : Boolean
disabledClass="(CSS クラス名)"
  • 無効な状態での CSS を指定する
  • 型 : String
enabledClass="(CSS クラス名)"
  • 有効な状態での CSS を指定する
  • 型 : String
readonly="(true|false)"
  • 読み取りのみにするか指定する
  • デフォルト : false
  • 型 : Boolean
rendered="(true|false)"
  • ページ上に表示するかを指定する
  • デフォルト : true
  • 型 : Boolean
required="(true|false)"
  • 必須のフィールドであるかを指定する
  • デフォルト : false
  • 型 : Boolean
value="{!(選択値)}"
  • 選択値を指定する
  • 型 : String[]
※ 詳細は apex:selectCheckboxes を参照



○ 任意のチェックボックスを作成したい

Ex.
  1. 色のチェックボックスを作成する
  2. 色を選択し、ボタンを押下する
  3. 画面を再描画する
  4. 選択したすべての色[value]値を選択した色で表示する

■ Visualforce ページ
<apex:page controller="SampleController">
    <apex:form >
        <apex:selectCheckboxes value="{!selections}" >
            <apex:selectOptions value="{!options}"/>
        </apex:selectCheckboxes>
        <p />
        <apex:commandButton value="button" action="{!redraw}" rerender="out" />
    </apex:form>
    <p />
    <apex:outputPanel id="out">
        <apex:outputText value="▼ selected options" />
        <hr />
        <apex:outputPanel >
            <apex:dataList value="{!selections}" var="s">
                <apex:outputText style="color:{!s}" value="{!s}" />
            </apex:dataList>
        </apex:outputPanel>
    </apex:outputPanel>
</apex:page>


■ SampleController クラス
public with sharing class SampleController {

    /** 選択値 */
    public String[] selections = new String[]{};

    /** 再描画処理 */
    public PageReference redraw() {
        return null;
    }

    /** 選択オプション取得 */
    public List<SelectOption> getOptions() {
        List<SelectOption> options = new List<SelectOption>();
        options.add(new SelectOption('Red', '赤'));
        options.add(new SelectOption('Yellow ', '黄'));
        options.add(new SelectOption('Green', '緑'));
        options.add(new SelectOption('Blue', '青'));
        options.add(new SelectOption('Purple', '紫'));
        return options;
    }

    /** 選択値取得 */
    public String[] getSelections() {
        return selections;
    }

    /** 選択値設定 */
    public void setSelections(String[] values) {
        this.selections = values;
    }
}
※ <apex:selectList>, <apex:selectRadio> コンポーネントの場合は
    /** 選択値 */
    public String[] selections { get; set; }
でもいけたのに、 <apex:selectCheckboxes> コンポーネントだとだめだった


■ 画面イメージ



◇ 環境

  • Salesforce - Developer Edition - API バージョン 21.0



◇ 参考


0 件のコメント:

コメントを投稿