+ Start a Discussion

Setter not getting invoked from selectList action

Hey guys,  Here is my scenario:


I have 3 page sections - top, bottom and middle


The top is a dropdown list

the middle is a pageblocktable with each row having 2 dropdowns in it

the bottom is just a list which requires no interaction


The dropdown in the top section is the same dropdown which is displayed with each row in the middle section.


I want it so that when the top dropdown has been changed the corresponding dropdown in the middle section's all get selected with the same values.


in my top dropdown controller code, I have the VALUE={} portion referencing a setter method which sets all the corresponding row elements in the middle sections rows to the same value.  But this method seems to NEVER get called.


Please tell me what I am doing wrong.


Thank's to all who contribute


Here is the vf code conercining the TOP dropdown list section


and the corresponding code that should be triggers when the value is changed


<apex:pageBlockSection title="Bureau Selection" collapsible="false" columns="1" id="bureau"> <apex:form > <apex:selectList size="1" onchange="genericPostbackFunction()" value="{!the_bureau}" style="position: relative; top: 50%; left: 50%;"> <apex:actionSupport event="onchange" reRender="nomination" /> <apex:selectOptions value="{!Speaker_Bureau_Options}"/> </apex:selectList> </apex:form> </apex:pageBlockSection>


public Speaker_Bureau_gne__c the_bureau {get; set{ system.debug('setter:'+the_bureau); for(memberContainer mC : membersMap.values()){ mC.Speaker_Bureau_ID_gne = the_bureau.id; system.debug('MC:'+mc); } } }




When you are using actionsupport no need to put the onchange attribute in selectlist. remove it and call the function in

action of the actionsupport


<apex:selectList size="1" value="{!the_bureau}" style="position: relative; top: 50%; left: 50%;">	        			
<apex:actionSupport event="onchange" reRender="nomination" action="{!actionFunction}"}/>

If you override a setter method (like what you are doing with set {} ) then you need to actually put the value into the variable.


Calling set {} is pretty much like creating a function called setMyVariable(String value) {  } so all you need to do is add:



public Speaker_Bureau_gne__c the_bureau





the_bureau = value;


for(memberContainer mC : membersMap.values())


mC.Speaker_Bureau_ID_gne = the_bureau.id;








Message Edited by XactiumBen on 07-28-2009 05:31 PM