Showing posts with label custom picklist in Visualforce page. Show all posts
Showing posts with label custom picklist in Visualforce page. Show all posts

Monday, July 28, 2014

How to use apex:selectOptions and prepare picklist values in Visualforce Page.

How to use apex:selectOptions and prepare picklist values in Visualforce Page.

Hi,
In this post i am using  <apex:selectOptions >,<apex:selectRadio>,<apex:selectList> tags. Here from controller i am preparing pick-list values and set in visualforce page.

Controller: 

public class SelectOptionController {
 public List<SelectOption> countrieLst {get;set;}
 public List<SelectOption> hobbiesLst {get;set;}
 public List<SelectOption> genderLst {get;set;}

 public String selectedCountry{get;set;}
 public String selectedHobby {get;set;}
 public String selectedGender {get;set;}
 public String selectedValues {get;set;}


 public SelectOptionController(){
  countrieLst = new List<SelectOption>();
  hobbiesLst = new List<SelectOption>();
  genderLst = new List<SelectOption>();
  
  countrieLst.add(new SelectOption('','--None--'));
  countrieLst.add(new SelectOption('India','India'));
  countrieLst.add(new SelectOption('China','China'));
  countrieLst.add(new SelectOption('US','US'));
  
  /* preparing picklist values in VF page.
  hobbiesLst.add(new SelectOption('','--None--'));
  hobbiesLst.add(new SelectOption('Swimming','Swimming'));
  hobbiesLst.add(new SelectOption('Reading','Reading'));
  hobbiesLst.add(new SelectOption('Cricket','Cricket'));
  */

  genderLst.add(new SelectOption('Male','Male'));
  genderLst.add(new SelectOption('Female','Female'));
   
 }

 public pageReference show(){
  selectedValues = 'Selected country:'+selectedCountry +'-->Selected Hobbies:'+selectedHobby+' Gender: -->'+selectedGender;
  return null;

 }


}


Visualforce page:

<apex:page controller="SelectOptionController">
 <apex:form > 
   <apex:commandbutton value="Show Values" action="{!show}"/>
   
   <apex:pageBlock >    
    <apex:outputLabel > Countries : </apex:outputLabel>
    <apex:selectList size="1" value="{!selectedCountry}">
      <apex:selectOptions value="{!countrieLst }"/>
    </apex:selectList> <br/>
    
    <apex:outputLabel > Gender : </apex:outputLabel>
    <apex:selectRadio value="{!selectedGender}"> 
     <apex:selectOptions value="{!genderLst}"/>
    </apex:selectRadio>  
    
     <apex:outputLabel > Hobbies :</apex:outputLabel>
    <apex:selectList size="1" value="{!selectedHobby}">
     <apex:selectOption itemLabel="--None--" itemvalue=""></apex:selectOption>
     <apex:selectOption itemLabel="Swimming" itemvalue="Swimming"></apex:selectOption>
     <apex:selectOption itemLabel="Reading" itemvalue="Reading"></apex:selectOption>
     <apex:selectOption itemLabel="Cricket" itemvalue="Cricket"></apex:selectOption>
    </apex:selectList>     
    </apex:pageBlock> 
   
   <apex:pageBlock title="selected values">
    <apex:outputText value="{!selectedValues}" style="color:red"/>   
   </apex:pageBlock>
 </apex:form>

</apex:page>


Test Class:

@isTest
Public class SelectOptionController_Test {
 static testmethod void testSelectOptionController(){
  //Test converage for the myPage visualforce page
  PageReference pageref = Page.SelectOptionVFExample;
  Test.setCurrentPageReference(pageref);
  
  // create an instance of the controller
  SelectOptionController sop= new SelectOptionController ();
  sop.selectedCountry ='India';
  sop.selectedHobby='Swimming';
  sop.selectedGender ='Male';
  sop.show();
  
  system.assertEquals('India',sop.selectedCountry);
  system.assertEquals('Swimming',sop.selectedHobby);
  system.assertEquals('Male',sop.selectedGender);
  }
}



out put: 

save image




 
| ,