在Apex中有時會遇到需要獲取選項列表字段中的值,例如 : 一個省字段下面可能存在多個省份,如 黑龍江、北京、河南等. 如何將所有的值都展現出來呢?
小喵剛接觸到這種情況的時候是這樣來的 ↓
ManProvinceOption = new List<SelectOption>();
ManProvinceOption.add(new SelectOption('全部','全部'));
ManProvinceOption.add(new SelectOption('山東','山東'));
ManProvinceOption.add(new SelectOption('黑龍江','黑龍江'));
ManProvinceOption.add(new SelectOption('吉林','吉林'));
ManProvinceOption.add(new SelectOption('江蘇','江蘇'));
ManProvinceOption.add(new SelectOption('深圳','深圳'));
ManProvinceOption.add(new SelectOption('上海','上海'));
ManProvinceOption.add(new SelectOption('浙江','浙江'));
ManProvinceOption.add(new SelectOption('福建','福建'));
ManProvinceOption.add(new SelectOption('廣東','廣東'));
ManProvinceOption.add(new SelectOption('廣西','廣西'));
ManProvinceOption.add(new SelectOption('大連','大連'));
ManProvinceOption.add(new SelectOption('安徽','安徽'));
ManProvinceOption.add(new SelectOption('甘肅','甘肅'));
ManProvinceOption.add(new SelectOption('瀋陽','瀋陽'));
ManProvinceOption.add(new SelectOption('江西','江西'));
ManProvinceOption.add(new SelectOption('山西','山西'));
ManProvinceOption.add(new SelectOption('新疆','新疆'));
ManProvinceOption.add(new SelectOption('湖南','湖南'));
ManProvinceOption.add(new SelectOption('天津','天津'));
ManProvinceOption.add(new SelectOption('河南','河南'));
ManProvinceOption.add(new SelectOption('SP本部','SP本部'));
ManProvinceOption.add(new SelectOption('雲南','雲南'));
ManProvinceOption.add(new SelectOption('湖北','湖北'));
ManProvinceOption.add(new SelectOption('北京','北京'));
ManProvinceOption.add(new SelectOption('四川','四川'));
ManProvinceOption.add(new SelectOption('內蒙古','內蒙古'));
ManProvinceOption.add(new SelectOption('陝西','陝西'));
ManProvinceOption.add(new SelectOption('河北','河北'));
ManProvinceOption.add(new SelectOption('GIR本部','GIR本部'));
ManProvinceOption.add(new SelectOption('貴州','貴州'));
ManProvinceOption.add(new SelectOption('重慶','重慶'));
ManProvinceOption.add(new SelectOption('青海','青海'));
這樣寫數據就是死數據,倘若以後有些大的改變,那將何其的麻煩?
小喵之前是學Java的,當時我們如果需要下拉列表的時候都是從數據庫的表中查詢出來的,然後在進行展示.
小喵從網上查詢了一下,在salesforce中也確實有着這種操作,下面就給小夥伴們上代碼 ...
它使用Schema.DescribeFieldResult 來獲得選項列表字段的描述getDescribe().
例子 :
ManProvinceOption= new List<SelectOption>();
Schema.DescribeFieldResult fieldResult2 = OPDPlan__c.ProvinceOption__c.getDescribe();
List<Schema.PicklistEntry> ple2 = fieldResult2.getPicklistValues();
for( Schema.PicklistEntry f : ple2) {
ManProvinceOption.add(new SelectOption(f.getLabel(),f.getLabel()));
}
格式 :
//保存數據的變量
變量名0 = new List<SelectOption>();
//獲取對象的選項列表字段的值
Schema.DescribeFieldResult 變量名1= 對象.選項列表字段.getDescribe();
List<Schema.PicklistEntry> 變量名2 = 變量名1.getPicklistValues();
for( Schema.PicklistEntry f : 變量名2) {
變量名0.add(new SelectOption(f.getLabel(),f.getLabel()));
}
今天的這個小知識點,
你Get到了嗎?
(^_^)~喵~!!