Boa tarde, estou tendo um problema com meu projeto, minha pagina xhtml está assim:
<h:form id="frm">
<h:panelGrid columns="3" cellspacing="15">
<h:outputText value="Inativos: " />
<p:selectBooleanCheckbox value="#{MBBovino.inativo}">
<p:ajax update=":frmBovListagem:tblBovinos" listener="#{MBBovino.mostrarInativo}" />
</p:selectBooleanCheckbox>
</h:panelGrid>
</h:form>
<h:form id="frmBovListagem" >
<p:dataTable id="tblBovinos" widgetVar="tabelaBovinos" emptyMessage="Nenhum Bovino encontrado" value="#{MBBovino.itens}" var="item" filteredValue="#{MBBovino.itensFiltrados}" paginator="true" rows="8">
<f:facet name="header">
Bovinos
</f:facet>
<p:column headerText="Código" filterBy="#{item.codigo}" >
<h:outputText value="#{item.codigo}">
<f:convertNumber pattern="000000" />
</h:outputText>
</p:column>
<p:column headerText="Nome" filterBy="#{item.nome}" >
<h:outputText value="#{item.nome}"/>
</p:column>
<p:column headerText="Data de Nascimento">
<h:outputText value="#{item.datanascimento}">
<f:convertDateTime pattern="dd/MM/yyyy" />
</h:outputText>
</p:column>
<p:column headerText="Raça" filterBy="#{item.raca}" >
<h:outputText value="#{item.raca}"/>
</p:column>
<p:column headerText="Origem" filterBy="#{item.origem}">
<h:outputText value="#{item.origem}"/>
</p:column>
<p:column headerText="Opções">
<p:commandButton rendered="#{item.situacao == 1}" icon="ui-icon-trash" oncomplete="PF('dlgBovExcluir').show();" update=":frmBovExcluir:pnlBovExcluir" title="Excluir">
<f:setPropertyActionListener value="#{item}" target="#{MBBovino.bovino}"/>
</p:commandButton>
<p:button icon="ui-icon-search" rendered="#{item.situacao == 1}" outcome="/pages/individualInformacoes.xhtml" title="Editar">
<f:param name="bovCodigo" value="#{item.codigo}"/>
</p:button>
<p:commandButton rendered="#{item.situacao == 0}" value="Ativar" oncomplete="PF('dlgBovAtivar').show();" update=":frmBovAtivar:pnlBovAtivar" title="Ativar">
<f:setPropertyActionListener value="#{item}" target="#{MBBovino.bovino}"/>
</p:commandButton>
<p:commandButton rendered="#{item.situacao == 1}" value="Inativar" oncomplete="PF('dlgBovInativar').show();" update=":frmBovInativar:pnlBovInativar" title="Ativar">
<f:setPropertyActionListener value="#{item}" target="#{MBBovino.bovino}"/>
</p:commandButton>
</p:column>
<f:facet name="footer">
</f:facet>
</p:dataTable>
</h:form>
<p:dialog header="Inativar Bovino" closable="false" draggable="false" widgetVar="dlgBovInativar" modal="true" appendTo="@(body)" resizable="false">
<h:form id="frmBovInativar">
<h:panelGrid columns="1" >
<h:outputText value="Você Deseja Realmente Inativar o Bovino: "/>
</h:panelGrid>
<h:panelGrid id="pnlBovInativar" columns="2" >
<h:outputText value="Codigo: "/>
<h:outputText value="#{MBBovino.bovino.codigo}"/>
<h:outputText value="Nome:"/>
<h:outputText value="#{MBBovino.bovino.nome}"/>
<h:outputText value="Destino:"/>
<p:inputText value="#{MBBovino.bovino.destino}"/>
</h:panelGrid>
<h:panelGrid columns="2" >
<p:commandButton value="Inativar" actionListener="#{MBBovino.inativar()}" oncomplete="PF('dlgBovInativar').hide(); PF('tabelaBovinos').clearFilters(); " update="frmBovListagem:tblBovinos :msgGlobal"/>
<p:commandButton value="Cancelar" onclick="PF('dlgBovInativar').hide();"/>
</h:panelGrid>
</h:form>
</p:dialog>
.Tenho uma tabela de bovinos, no banco eles podem ser inativos ou ativos, então ao clicar no checkBox ele lista os bovinos inativos, ai se eu clicar novamente desmarcando, ele só mostra os ativos, isso funciona. Porem quando eu clico no botão de inativar ali da coluna da tabela, e desativo o bovino, meu checkbox não consegue mais filtrar e listar, é como se ele parece de funcionar, mas não retorna nenhum erro.
Meu bean está assim:
Metodo do checkBox:
public void mostrarInativo() throws SQLException {
BovinoDAO dao = new BovinoDAO();
if(inativo){
itens = dao.listarInativos();
}else{
itens = dao.listar();
}
}
Método de ativar o bovino
public void ativar(){
try {
BovinoDAO dao = new BovinoDAO();
dao.ativar(bovino);
itens = dao.listar();
JSFUtil.adicionarMensagemSucesso("Bovino ativado com sucesso");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
JSFUtil.adicionarMensagemErro(e.getMessage());
}
}
Método de Inativar o bovino
public void inativar(){
try {
BovinoDAO dao = new BovinoDAO();
dao.inativar(bovino);
itens = dao.listar();
JSFUtil.adicionarMensagemSucesso("Bovino inativado com Sucesso");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
JSFUtil.adicionarMensagemErro(e.getMessage());
}
}
Se alguém puder me dar uma ajuda, parece que o check perde o foco, ou algo assim, porque ele simplesmente para de funcionar
