Creating a Multilevel Dependent Picklist on Visualforce inside a Data Table | Techila
1075
single,single-post,postid-1075,single-format-standard,ajax_updown_fade,page_not_loaded,,qode_grid_1300,footer_responsive_adv,hide_top_bar_on_mobile_header,qode-content-sidebar-responsive,qode-theme-ver-9.4.2,bridge,wpb-js-composer js-comp-ver-4.12,vc_responsive
 

Creating a Multilevel Dependent Picklist on Visualforce inside a Data Table

picklist

Creating a Multilevel Dependent Picklist on Visualforce inside a Data Table

The trick is create a wrapper class within you Apex:Class and bind it with the SelectList.

VF Page:


<apex:actionRegion >

<apex:pageBlockSection id=”theSection” rendered=”{!noLob}”>

<apex:dataTable value=”{!packages}” var=”field” id=”thetable” cellpadding=”3px” id=”dt”>

<apex:column headerValue=”Action”>

<apex:CommandButton action=”{!copyRow}” value=”Copy” rerender=”theSection” status=”pleasewait”>

<apex:param name=”Assignment” Assignto=”{!SelIndex}” value=”{!field.index}”/>

</apex:CommandButton>

</apex:column>

<apex:column headerValue=”Product Group”>

<apex:selectList value=”{!field.level1}” size=”1″ >

<apex:selectOptions value=”{!field.level1Options}” />

<apex:actionSupport event=”onchange” reRender=”level2″ status=”pleasewait”>

</apex:actionSupport>              

</apex:selectList>  

</apex:column>  

<apex:column headerValue=”Products” > 

<apex:selectList id=”level2″ value=”{!field.level2}” size=”1″ disabled=”{!field.disable_level2}”>

<apex:selectOptions value=”{!field.level2Options}”/>    

</apex:selectList> 

</apex:dataTable>

And now the controller:


public class AddNewProductsController {

public class myObject{

 public string level1 {get;set;} // The selected Level1 value in the Product Picklist on the modal panel

 public string level2 {get;set;}// The selected Level2 value in the Product Picklist on the modal panel

 public boolean disable_level2{get;set;}// The determines if Level2 value in the Product Picklist is disabled

 public boolean disable_level3{get;set;}// The determines if Level3 value in the Product Picklist is disabled

 public boolean FormRendered{get;set;}

 public myObject(){

 }

 public List getLevel1Options(){

 List options = new List();

 Options.add(new SelectOption(”,’–None–‘));

 Options.add(new SelectOption(‘Product Group 1′,’Product Group 1’));

Options.add(new SelectOption(‘Product Group 2′,’Product Group 2’));

 Options.add(new SelectOption(‘Product Group 3′,’Product Group 3’));

 Options.add(new SelectOption(‘Product Group 4′,’Product Group 4’));

 return options;

 }

 

 public List getLevel2Options(){

 List options = new List();

 System.debug(‘===========’+level1+’%%%%%%%%%’);

 options.add(new SelectOption(”, ‘–None–‘));

 disable_level2=false;

 

 if(level1 == ‘Product Group 1’){

 options.add(new SelectOption(‘Product1’, ‘Product1’));

 options.add(new SelectOption(‘Product2’, ‘Product2’));

 }else if(level1 == ‘Product Group 2’){

 options.add(new SelectOption(‘Product1’, ‘Product1’));

 options.add(new SelectOption(‘Product15’, ‘Product15’));

 }else if(level1 == ‘Product Group 3’){

 options.add(new SelectOption(‘Product2’, ‘Product2’));

 options.add(new SelectOption(‘Product23’, ‘Product23’));

 }else if(level1 == ‘Product Group 4’){

 options.add(new SelectOption(‘Product16’, ‘Product16’));

 options.add(new SelectOption(‘Product12’, ‘Product12’));

 }else if(level1 == ‘Product Group 5’){

 options.add(new SelectOption(‘Product16’, ‘Product16’));

 options.add(new SelectOption(‘Product1’, ‘Product1’));

 }else{

 disable_level2=true;

 }

 return options;

 }

}


This code will do your trick.

 

 

Courtesyhttp://www.sforce.ninja/2009/12/creating-multilevel-dependent-picklist.html

Author: techila

No Comments

Post A Comment