私は使用<p:dataTable>
しており<p:column>
、<p:commandButton>
Bean で指定されている 1 つの条件で無効にする必要があります。
フォームは次のとおりです。
<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>
私のManagedBeanで:
public boolean isDettaglio() {
return flussiTURepository.isDettaglio(selectedFlusso);
}
このメソッドはデータベースにクエリを実行し、条件に応答するかどうかに応じてtrue
orを返します。false
selectedFlusso
問題はこれです: メソッドisDettaglio()
でselectedFlusso
は、 は で初期化されますf:setPropertyActionListener
。メソッドが呼び出されると、selectedFlusso
ですnull
。selectedFlusso
の無効化された属性で<p:commandButton>
はないように設定するにはどうすればよいnull
ですか?