Salesforce之如何在Apex中獲取選項列表中的值

        在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到了嗎?

(^_^)~喵~!!

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章