2014-10-26 4 views
1

У меня есть <p:datatable> со списком людей, каждая строка имеет buttom для включения/выключения человека. эта кнопка имеет только функцию изменения статуса (активного/неактивного) пользователя. Для показа пользователей у меня есть следующее:Включить - отключить кнопку в p: datatable primefaces/jsf

<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 с неактивным?

ответ

1

Вы можете достичь этого, имея две кнопки внутри одной колонки с противоположными или разными атрибутами rendered. Если «Bloquear» является кнопка, которую вы имеете в виду, что это будет что-то вроде этого:

<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"

Смежные вопросы