Visualforce Page:
<apex:page controller="batchpicklistcls" >
<apex:form >
<apex:actionFunction name="showstuds" action="{!show}" rerender="out" status="stat"/>
<!-- To show all the batches in a picklist -->
<apex:selectlist value="{!batchselected}" size="1" onchange="showstuds()" >
<apex:selectOptions value="{!batchitems}"/>
</apex:selectlist>
<apex:outputpanel id="out">
<apex:Actionstatus id="stat">
<apex:facet name="start">
<apex:image value="{!$Resource.loading}"/>
</apex:facet>
<apex:facet name="stop">
<apex:selectList value="{!studentselected}" size="1" disabled="{!openpicklist}">
<apex:selectOptions value="{!studitems}"/>
</apex:selectList>
</apex:facet>
</apex:Actionstatus>
</apex:outputpanel>
</apex:form>
</apex:page>
Apex Class:
public with sharing class batchpicklistcls {
public string batchselected{get; set;}
public boolean openpicklist {get; set;}
public List<SelectOption> batchitems{get; set;}
public batchpicklistcls(){
batchitems = new List<SelectOption>();
openpicklist =true;
List<Batch__c> lstbatch = [Select id, name from batch__c order by name];
batchitems.add(new Selectoption('','---None--'));
for(batch__c b:lstbatch){
batchitems.add(new Selectoption(b.id,b.name));
}
}
public string studentselected{get; set;}
public List<SelectOption> studitems{get; set;}
public void show(){
System.debug('-----------------Method id called---');
System.debug('--------------'+batchselected);
studitems = new List<SelectOption>();
List<Student__c> lst = [Select id, name from Student__c where BatchNo__c =:batchselected ];
if(lst.size()>0){
openpicklist =false;
}
else
openpicklist =true;
for(Student__c s:lst){
studitems.add(new SelectOption(s.id, s.name));
}
}
}
No comments:
Post a Comment