Saturday, April 20, 2013

Displaying Dependent Picklist Fields on a Visualforce Page without using Sobject

Visualforce Page:



<apex:page controller="dependentpicklist">  
    <apex:form >
        <apex:pageBlock >
            <apex:actionFunction name="State" action="{!StateToCity}"/>
            <apex:selectList multiselect="false" value="{!selectedState}" size="1" onchange="State()"> 
                <apex:selectOption itemLabel="-----None----" itemValue=""/>
                <apex:selectOptions value="{!listStates}"/>
            </apex:selectList>
            <apex:actionFunction name="City" action="{!CityToArea}"/>
            <apex:selectList multiselect="false" value="{!selectedCity}" size="1" onchange="City()" disabled="{!cityDisable}">            
                <apex:selectOption itemLabel="-----None----" itemValue=""/>
                <apex:selectOptions value="{!listCities}"/>
            </apex:selectList>            
            <apex:selectList multiselect="false" value="{!selectedArea}" size="1" disabled="{!areaDisable}">            
                <apex:selectOption itemLabel="-----None----" itemValue=""/>
                <apex:selectOptions value="{!listAreas}"/>
            </apex:selectList>
        </apex:pageBlock>
    </apex:form>
</apex:page>

Apex Class:

public with sharing class dependentpicklist {

public Boolean areaDisable { get; set; }

public Boolean cityDisable { get; set; }

public dependentpicklist()
{
cityDisable=true;
areaDisable=true;
listStates = new List<SelectOption>();
listStates.add(new SelectOption('ANDHRA PRADESH','Andhra Pradesh'));
listStates.add(new SelectOption('TAMIL NADU','Tamil Nadu'));
listStates.add(new SelectOption('KARNATAKA','Karnataka'));
}
public PageReference StateToCity()
{
cityDisable=false;
if(selectedState=='ANDHRA PRADESH')
{
listCities = new List<SelectOption>();
listCities.add(new SelectOption('HYDERABAD','Hyderabad'));
listCities.add(new SelectOption('VIJAYAWADA','Vijayawada'));
listCities.add(new SelectOption('NELLORE','Nellore'));
}

if(selectedState=='TAMIL NADU')
{
listCities = new List<SelectOption>();
listCities.add(new SelectOption('CHENNAI','Chennai'));
listCities.add(new SelectOption('COIMBATORE','Coimbatore'));
listCities.add(new SelectOption('VELLORE','Vellore'));
}

if(selectedState=='KARNATAKA')
{
listCities = new List<SelectOption>();
listCities.add(new SelectOption('MYSORE','Mysore'));
listCities.add(new SelectOption('MANGALORE','Mangalore'));
listCities.add(new SelectOption('BANGALORE','Bangalore'));
}

return null;
}


public PageReference CityToArea()
{
areaDisable=false;
if(selectedCity=='HYDERABAD')
{
listAreas = new List<SelectOption>();
listAreas.add(new SelectOption('BANJARA HILLS','Banjara Hills'));
listAreas.add(new SelectOption('HITECH CITY','Hitech City'));
listAreas.add(new SelectOption('JUBILEE HILS','Jubilee Hills'));
}

if(selectedCity=='VIJAYAWADA')
{
listAreas = new List<SelectOption>();
listAreas.add(new SelectOption('KONDAPALLI FORT','Kondapalli Fort'));
listAreas.add(new SelectOption('GANDHI HILL','Gandhi Hill'));
listAreas.add(new SelectOption('KOLLERU LAKE','Kolleru Lake'));
}
if(selectedCity=='NELLORE')
{
listAreas = new List<SelectOption>();
listAreas.add(new SelectOption('A C NAGAR','A C Nagar'));
listAreas.add(new SelectOption('DARGA MITTA','Darga Mitta'));
listAreas.add(new SelectOption('GUDUR','Gudur'));
}
if(selectedCity=='CHENNAI')
{
listAreas = new List<SelectOption>();
listAreas.add(new SelectOption('ENNORE','Ennore'));
listAreas.add(new SelectOption('PERAMBUR','Perambur'));
listAreas.add(new SelectOption('ANNA NAGAR','Anna Nagar'));
}
if(selectedCity=='COIMBATORE')
{
listAreas = new List<SelectOption>();
listAreas.add(new SelectOption('RAM NAGAR','Ram Nagar'));
listAreas.add(new SelectOption('PERUR','Perur'));
listAreas.add(new SelectOption('R S PURAM','R S Puram'));
}
if(selectedCity=='VELLORE')
{
listAreas = new List<SelectOption>();
listAreas.add(new SelectOption('ALLA PURAM','Alla Puram'));
listAreas.add(new SelectOption('BAGAYAM','Bagayam'));
listAreas.add(new SelectOption('SAIDAPET','Saidapet'));
}
if(selectedCity=='MYSORE')
{
listAreas = new List<SelectOption>();
listAreas.add(new SelectOption('HINKAL','Hinkal'));
listAreas.add(new SelectOption('INDIRA NAGAR','Indira Nagar'));
listAreas.add(new SelectOption('BELVADI','Belvadi'));
}
if(selectedCity=='MANGALORE')
{
listAreas = new List<SelectOption>();
listAreas.add(new SelectOption('PEJAVARA','Pejavara'));
listAreas.add(new SelectOption('KENJAR','Kenjar'));
listAreas.add(new SelectOption('KOLAVOOR','Kolavoor'));
}
if(selectedCity=='BANGALORE')
{
listAreas = new List<SelectOption>();
listAreas.add(new SelectOption('BELLANDUR','Bellandur'));
listAreas.add(new SelectOption('AGARA','Agara'));
listAreas.add(new SelectOption('BANASANKARI','Banasankari'));
}

return null;
}


public List<SelectOption> listAreas { get; set; }

public String selectedArea { get; set; }

public List<SelectOption> listCities { get; set; }

public String selectedCity { get; set; }

public List<SelectOption> listStates { get; set; }

public String selectedState { get; set; }
}


No comments:

Post a Comment