You need to sign in to do that
Don't have an account?
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
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
{
get;
set
{
the_bureau = value;
system.debug('setter:'+the_bureau);
for(memberContainer mC : membersMap.values())
{
mC.Speaker_Bureau_ID_gne = the_bureau.id;
system.debug('MC:'+mc);
}
}
}