I have a column inside a <rich:dataTable>
that contains <a4j:commandButton>
for deleting rows.
Deleting rows works fine when calling bean's delete function (e.g. #{bean.deleteCar(record.carId)}
) via commandButton's action
attribute. Unfortunately, when using <a4j:jsFunction>
's action
attribute the record.carId
of the last row is passed to the bean, instead of the selected row.
Some code for clarification. The following deletes the car of the clicked row:
<a4j:commandButton value="Delete"
action="#{bean.deleteCar(record.carId)}"/>
The following deletes last row's car:
<a4j:commandButton value="Delete"
onclick="#{rich:component('confirmDeletePane')}.show()">
<a4j:jsFunction name="deleteCar"
action="#{bean.deleteCar(record.carId)}"
oncomplete="#{rich:component('confirmDeletePane')}.hide();"
render="carsTable"/>
</a4j:commandButton>
<rich:popupPanel id="confirmDeletePane" header="Delete" modal="true" autosized="true" onmaskclick="#{rich:component('confirmDeletePane')}.hide();">
<h:outputText value="Delete?"/>
<h:panelGroup>
<a4j:commandButton value="Cancel" onclick="#{rich:component('confirmDeletePane')}.hide(); return false;" />
<a4j:commandButton value="OK" onclick="deleteCar(); return false;"/>
</h:panelGroup>
</rich:popupPanel>
As you can see I'm trying to confirm user's selection before deletion. Thanks in advance.