Don't have an account?
Search for an answer or ask a question of the zone or Customer Support.
You need to sign in to do that
Sign in to start searching questions
Signup for a Developer Edition
Sign in to start a discussion
public class multiselect { Set<String> originalvalues = new Set<String>{'A','B','C','D','E','F','G'}; Public List<string> leftselected{get;set;} Public List<string> rightselected{get;set;} Set<string> leftvalues = new Set<string>(); Set<string> rightvalues = new Set<string>(); public multiselect(){ leftselected = new List<String>(); rightselected = new List<String>(); leftvalues.addAll(originalValues); } public PageReference selectclick(){ rightselected.clear(); for(String s : leftselected){ leftvalues.remove(s); rightvalues.add(s); } return null; } public PageReference unselectclick(){ leftselected.clear(); for(String s : rightselected){ rightvalues.remove(s); leftvalues.add(s); } return null; } public List<SelectOption> getunSelectedValues(){ List<SelectOption> options = new List<SelectOption>(); List<string> tempList = new List<String>(); tempList.addAll(leftvalues); tempList.sort(); for(string s : tempList) options.add(new SelectOption(s,s)); return options; } public List<SelectOption> getSelectedValues(){ List<SelectOption> options1 = new List<SelectOption>(); List<string> tempList = new List<String>(); tempList.addAll(rightvalues); tempList.sort(); for(String s : tempList) options1.add(new SelectOption(s,s)); return options1; } }
<apex:page controller="multiselect"> <apex:form > <apex:pageBlock title="CONTACTS"> <apex:panelGrid columns="3" id="abcd"> <apex:selectList id="sel1" value="{!leftselected}" multiselect="true" style="width:100px" size="5"> <apex:selectOptions value="{!unselectedvalues}" /> </apex:selectList> <apex:panelGroup > <br/> <apex:image value="{!$Resource.selected}"> <apex:actionSupport event="onclick" action="{!selectclick}" reRender="abcd"/> </apex:image> <br/><br/> <apex:image value="{!$Resource.unselected}"> <apex:actionSupport event="onclick" action="{!unselectclick}" reRender="abcd"/> </apex:image> </apex:panelGroup> <apex:selectList id="sel2" value="{!rightselected}" multiselect="true" style="width:100px" size="5"> <apex:selectOptions value="{!SelectedValues}" /> </apex:selectList> </apex:panelGrid> </apex:pageBlock> </apex:form> </apex:page>
Try this code
controller:
vf page:
Hope this helps.
Please try this could be helpful for you.
Visualforce Page:
<apex:page controller="sampleCon">
<apex:form>
<apex:selectList value="{!countries}" multiselect="true">
<apex:selectOptions value="{!items}"/>
</apex:selectList><p/>
<apex:commandButton value="Test" action="{!test}" rerender="out" status="status"/>
</apex:form>
<apex:outputPanel id="out">
<apex:actionstatus id="status" startText="testing...">
<apex:facet name="stop">
<apex:outputPanel>
<p>You have selected:</p>
<apex:dataList value="{!countries}" var="c">{!c}</apex:dataList>
</apex:outputPanel>
</apex:facet>
</apex:actionstatus>
</apex:outputPanel>
</apex:page>
Controller:
public class sampleCon {
String[] countries = new String[]{};
//If multiselect is false, countries must be of type String
//String countries;
public PageReference test() {
return null;
}
public List<SelectOption> getItems() {
List<SelectOption> options = new List<SelectOption>();
options.add(new SelectOption('US','US'));
options.add(new SelectOption('CANADA','Canada'));
options.add(new SelectOption('MEXICO','Mexico'));
return options;
}
public String[] getCountries() {
//If multiselect is false, countries must be of type String
return countries;
}
public void setCountries(String[] countries) {
//If multiselect is false, countries must be of type String
this.countries = countries;
}
}
Please mark this as best answer if this solves your problem.
Thank you
Ajay Dubedi