Wednesday, April 20, 2016

Represent multipicklist List as checkboxes (selectCheckboxes)

Representing multipicklist as checkboxes;


Visuaforce:
<apex:selectCheckboxes label="CSM: Evidence Provided" layout="pageDirection" style="margin-left: -13px; padding-top: 0px;" value="{!CheckboxSelections}">
                 
             <apex:selectOptions value="{!Checkboxes}"></apex:selectOptions>
             
</apex:selectCheckboxes>

Have your utility methods as follows, (class name LibUtil)

    public static list<SelectOption> getPicklistValues(string objectName, String myField){
        list<SelectOption> options = new list<SelectOption>();
       
        sObjectType objectType = Schema.getGlobalDescribe().get(objectName);
        if(objectType==null)
            return options;
       
        Schema.DescribeSObjectResult objDescribe = objectType.getDescribe(); 
       
        Schema.SObjectField theField = objDescribe.fields.getMap().get(myField);
       
        if(theField==null)
            return options;
       
        for (Schema.PicklistEntry a :theField.getDescribe().getPickListValues())
            options.add(new SelectOption(a.getLabel(), a.getValue()));
       
        return options;
    }
   
    public static String formatPicklistValues(List<String> values) {
        if (values == null) return null;
        return String.join(values, ';');
    }

Inside the controller class, have the following code;

    public list<String> CheckboxSelections {get;set;}
    public list<selectOption> getCheckboxes(){
        return LibUtil.getPicklistValues('objectName','FiledAPIName');
    }





No comments:

Post a Comment