我使用<p:dataTable>
和<p:column>
我有<p:commandButton>
必须在bean中指定的一个条件中禁用。Primefaces p:commandButton:仅在f:setPropertyActionListener之前工作
这里的形式:
<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
或false
取决于如果selectedFlusso
响应的条件返回。
问题是这样的:在方法isDettaglio()
,selectedFlusso
初始化在f:setPropertyActionListener
。当调用该方法时,selectedFlusso
是null
。 如何设置selectedFlusso
以便在<p:commandButton>
的禁用属性中不是null
?
你的问题很混乱。代码片段和问题中的描述似乎并不匹配。你真的用'isDettaglio'和'disableDettaglio'来表示同一件事吗?如果是这样,为什么你不只是'disabled =“#{flusso.dettaglio}”'? – BalusC 2013-03-18 16:36:02
你说得对,对不起!我做了一些测试,但我还没有恢复原来的。 disableDettaglio在现实中是这样的:dettaglio是这样的: disabled =“#{!invioFlussiTUManagedBean.dettaglio}”> – 2013-03-18 16:52:10