I'm using <p:dataTable>
and in a <p:column>
I have a <p:commandButton>
that must be disabled in one condition that is specified in the bean.
Here's the form:
<p:dataTable var="flusso" id="flussoList" rows="5"
widgetVar="flussoTable" value="#{invioFlussiTUManagedBean.flussi}"
filteredValue="#{invioFlussiTUManagedBean.filteredFlussi}"
emptyMessage="#{i18n['tu.msg.emptysearch']}" paginator="true"
paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink}">
<p:column style="width:100px;height:35px;">
<p:commandButton
update=":invioFlForm:flussoList :invioFlForm:displayConfirm"
icon="ui-icon-extlink" oncomplete="confirmation.show()"
title="#{i18n['tu.button.flusso.invia']}"
rendered="#{flusso.statoFlusso.code == 'DS'}"
disabled="#{!invioFlussiTUManagedBean.dettaglio}">
<f:setPropertyActionListener value="#{flusso}"
target="#{invioFlussiTUManagedBean.selectedFlusso}" />
<f:setPropertyActionListener value="#{false}"
target="#{invioFlussiTUManagedBean.modoInvioTutti}" />
</p:commandButton>
</p:column>
</p:dataTable>
In my ManagedBean:
public boolean isDettaglio() {
return flussiTURepository.isDettaglio(selectedFlusso);
}
This method queries the database and returns true
or false
depending if selectedFlusso
responds to a condition.
The issue is this: in the method isDettaglio()
, selectedFlusso
is initialized in the f:setPropertyActionListener
. When the method is called, selectedFlusso
is null
.
How do I set selectedFlusso
so that in the disabled attribute of <p:commandButton>
is not null
?