Storing values in Multi-Select picklist using Apex in Salesforce

Storing values in Multi-Select picklist using Apex in Salesforce

Sample Code:

Visualforce page:

<apex:page controller="Sample">
<apex:form >   
    <apex:pageBlock >
        <apex:pageBlockSection columns="1">
            <apex:pageBlockSectionItem >
                <apex:outputLabel >Member Name:</apex:outputLabel>
                <apex:inputText value="{!Name}"/>               
            </apex:pageBlockSectionItem>
            <apex:pageBlockSectionItem >
                <apex:outputLabel >Member Interest:</apex:outputLabel>
                <apex:selectList value="{!SelectedInterests}" multiselect="true" size="3">
                    <apex:selectOptions value="{!InterestOptions}"/>
                </apex:selectList>
            </apex:pageBlockSectionItem>
        </apex:pageBlockSection>
        <apex:pageBlockButtons location="bottom">
            <apex:commandButton value="Save" action="{!sav}"/>
        </apex:pageBlockButtons>
    </apex:pageBlock>
</apex:form>
</apex:page>

Apex Controller:

public class Sample
{   
    public List<String> SelectedInterests {get;set;}
    public String Name {get;set;}
   
    public List<SelectOption> getInterestOptions() {
        List<SelectOption> Options = new List<SelectOption>();
        Options.add(new SelectOption('None','None'));
        Options.add(new SelectOption('Cricket','Cricket'));
        Options.add(new SelectOption('Hockey','Hockey'));
        Options.add(new SelectOption('Swimming','Swimming'));
        Options.add(new SelectOption('Rugby','Rugby'));
        return Options;
    }
   
    public void sav() {
        Member__c Mem = new Member__c();
        Mem.Name = Name;
        String Interests = '';
        Boolean Start = true;
        if(!SelectedInterests.isEmpty()) {          
            for(String Str : SelectedInterests) {
                if(Start) {
                    Interests = Str;
                    Start = false;
                } else {              
                    Interests = Interests + ';' + Str;
                }
            }
        }
        Mem.Interests__c = Interests;
        insert Mem;
    }
}

Note:

Here Member__c is my Custom Object and Interests__c is a multi-picklist field.

Output:

Leave a Reply