Wednesday, January 22, 2014

PickList controller via Apex

Here i am going to post the apex code to make pickList dependencies. Some time it we need to show a contacts of related account. Then we can use pickList dependencies

VF page :-
<apex:page controller="PicklistController">
  <apex:sectionHeader title="Picklist dependency"/>
  <apex:form id="frm">
      <apex:actionFunction name="change" action="{!con}" status="status" reRender="frm"/>
      <apex:actionStatus startText="Please wait" id="status"></apex:actionStatus>
      <apex:pageBlock >
          Account : <apex:selectList value="{!selectList}" size="1" onchange="change(); return false;">
                      <apex:selectOptions value="{!accts}">
                      </apex:selectOptions>
                    </apex:selectList><br/><br/><br/>
         contact : <apex:selectList value="{!selectList1}" size="1">
                      <apex:selectOptions value="{!options1}">
                      </apex:selectOptions>
                    </apex:selectList>        
      </apex:pageBlock>
  </apex:form>
</apex:page>

Apex Controller  :-

//class..
public class PicklistController{
    List<Account> acc {get; set;}
    public string selectlist {get; set;}
    public string selectlist1 {get; set;}
    public  List<selectOption> options {get; set;}
    public  List<selectOption> options1 {get; set;}
    //constructor...
    public PicklistController(){
        acc = new List<Account>();
        acc = [select id , name from account];
     }
    public List<selectOption> getaccts(){
        options = new List<selectOption>();
        options.add(new selectOption('', '- None -'));
        for(Account ac : acc){
            options.add(new selectOption(ac.id, ac.Name));
        }
        return options;
    }
    public pagereference con(){
        options1 = new List<selectOption>();
        options1.add(new selectOption('', '- None -'));
        for(contact cont : [select id, name from contact where contact.accountid =: selectlist]){
            options1.add(new selectOption(cont.id, cont.Name));
        }
        return null;
    }

}


No comments:

Post a Comment