Following your input I made changes but it is still not working. This is my new code:
<apex:column >
<apex:inputCheckbox value="{!myRec.isPerf}" id="perf">
<apex:actionSupport event="onchange" action="{!togglePerf}" rerender="theBlock">
<apex:param name="perfId" assignto="{!selectedItemId}" value="{!myRec.Id}"/>
</apex:actionSupport>
</apex:inputCheckbox>
</apex:column>
public ID selectedItemId {get; set;}
public void togglePerf(){
Wrapper wrapper = mapIdWrapperItem.get(selectedItemId);
}
Please advise...
Original message:
I have a column with an apex:inputCheckbox component in it. On change I want to execute some controller logic which needs to know the value of a parameter on the page. When the controller method is called I see the parametr is null although I know that in the page it has a value. Can anyone suggest why this is not working and what is the right way to do this?
This is my VF code
<apex:column >
<apex:facet name="header">Performing</apex:facet>
<apex:inputCheckbox value="{!myRec.isPerf}" id="perf">
<apex:actionSupport event="onchange" action="{!togglePerf}" rerender="theBlock"/>
<apex:param name="perfId" value="{!myRec.Id}"/>
</apex:inputCheckbox>
</apex:column>
Controller code where selId is always null:
public void togglePerf(){
String selId = System.currentPagereference().getParameters().get('perfId');
ItemWrapper wrapper = mapIdWapperItem.get(selId);
}