我有一个<p:datatable>
个人列表,每行都有一个按钮,用于启用/禁用此人。此按钮仅具有更改用户状态(活动/未激活)的功能。为了向用户展示我喜欢这个:
<h:outputLabel value="Status" />
<h:selectOneMenu value="#{pessoaBean.ativo}">
<f:selectItem itemLabel="Todos" itemValue="-1" />
<f:selectItem itemLabel="Ativo" itemValue="1" />
<f:selectItem itemLabel="Inativo" itemValue="0" />
</h:selectOneMenu>
这允许我只显示活动用户或非活动用户。这很好用。我的问题是,当我有一个活跃的人员列表时,我想要按钮A,当一个人不活动时,我想显示按钮B.每个按钮(A和B)都具有改变状态的功能用户,但显然一个按钮在不活动时变为活动而相反。
我的p:datatable
如下:
<p:dataTable value="#{pessoaBean.pessoas}" var="pes" id="tabelaUsuarios"
paginator="true" rows="10" emptyMessage="Nenhum registro encontrado"
sortOrder="acending" selectionMode="single" rowKey="#{pes.cdPessoa}"
rendered="#{pessoaBean.pessoas != null}"
paginatorPosition="bottom" scrollable="false">
<p:column headerText="Nome">
#{pes.nmPessoa}
</p:column>
<p:column headerText="Email" >
#{pes.email}
</p:column>
<p:column headerText="Status">
#{pes.flAtivo}
</p:column>
<p:column>
<h:commandButton action="#{pessoaBean.bloquear}" value="Bloquear"
class="btn btn-default" >
<f:param value="#{pes.cdPessoa}" name="id" />
</h:commandButton>
</p:column>
</p:dataTable>
有人知道我怎么能得到这个结果吗?只显示带有活动人员的按钮A和带有非活动状态的按钮B
答案 0 :(得分:1)
您可以通过在同一列中包含两个具有相反或不同rendered
属性的按钮来实现此目的。如果&#34; Bloquear&#34;是你指的按钮,它会是这样的:
<p:column>
<h:commandButton action="#{pessoaBean.bloquear}" value="Bloquear"
rendered="#{pes.flAtivo eq 1}" class="btn btn-default">
<f:param value="#{pes.cdPessoa}" name="id" />
</h:commandButton>
<h:commandButton action="#{pessoaBean.desbloquear}" value="Desbloquear"
rendered="#{pes.flAtivo eq 0}" class="btn btn-default" >
<f:param value="#{pes.cdPessoa}" name="id" />
</h:commandButton>
</p:column>
顺便提一句,你应该是sortOrder="ascending"