Hello friends, today we will learn to Create a reusable picklist method in Apex. We can easily create a dynamic reusable picklist method so we can get many picklist values by one method.
Apex Class : reusablePicklist.apxc
public class reusablePicklist{
public string country{get;set;}
public static List<SelectOption> globSelectOption(string objectApiName, String fieldApi) {
List<SelectOption> optionList = new List<SelectOption>();
optionList.add(new selectOption('', '--None--'));
Schema.SObjectType targetType = Schema.getGlobalDescribe().get(objectApiName);
Sobject objectApi = targetType.newSObject();
Schema.sObjectType objType = objectApi.getSObjectType();
Schema.DescribeSObjectResult objDescribe = objType.getDescribe();
map<String, Schema.SObjectField> fieldMap = objDescribe.fields.getMap();
list<Schema.PicklistEntry> values =fieldMap.get(fieldApi).getDescribe().getPickListValues();
for (Schema.PicklistEntry ple : fieldMap.get(fieldApi).getDescribe().getPickListValues()) {
optionList.add(new SelectOption(ple.getvalue(), ple.getLabel()));
}
return optionList;
}
/************/
public List<SelectOption> getCountryPicklist(){
return globSelectOption('Account','Country__c');
}
/************/
}
Visualforce Page: reusablePicklist.vfp
<apex:page controller="reusablePicklist" showHeader="false" sidebar="false">
<apex:selectList size="1" value="{!country}" id="countryid">
<apex:selectOptions value="{!CountryPicklist}"/>
</apex:selectList>
</apex:page>