apex:selectList のメモ書き
- 任意の選択リスト型の入力項目を表示する
■ select
VFPage
<apex:selectList label="選択リスト" value="{!option}" size="1" >
<apex:selectOptions value="{!options}"/>
</apex:selectList>
※ 複数選択リストにする場合は、「apex:selectList コンポーネント」に「multiselect="true"」属性を追加する※ 「size="1"」表示される選択肢を 1 個にする
Apex
public class SampleController {
public String option { get; set; }
public List<SelectOption> options { get; set; }
public SampleController(ApexPages.StandardController controller) {
this.option = '';
this.options = this.getSelectOption(`オブジェクト名`, `選択リストのフィールド名`);
}
public List<SelectOption> getSelectOption(Strin sObjectName, String fieldName) {
List<SelectOption> retval = new List<SelectOption>();
retval.add(new SelectOption('', '下記から選択してください。', true)); // ラベルを表示・非選択
Schema.DescribeFieldResult f = Schema.getGlobalDescribe().get(sObjectName).getDescribe().fields.getMap().get(fieldName).getDescribe();
List<Schema.PicklistEntry> pickList = f.getPicklistValues();
for(Schema.PicklistEntry pick : pickList) {
if(pick.isActive()) {
retval.add(new SelectOption(pick.getValue(), pick.getLabel())); // ラベルを表示・選択可能
}
}
return retval;
}
}
ref:
- Visualforce 開発者ガイド
- Apex 開発者ガイド
- 参考サイト