Olá,
Estou com um problema que acredito que seja simples para resolver, mas não estou conseguindo solucioná-lo.
Tenho uma página que mostra um dataTable e no topo da pagina dois campos que eu coloco uma data de inicio e uma de fim para filtrar a minha pesquisa.
Quando eu coloco as datas e mando filtrar, lá na minha lógica ele monta a minha lista, limitando ela com 200 registros, e atualiza a data de inicio com a data do meu ultimo registro da lista.
Até aqui ok!
O que acontece é que na minha pagina ele mostra minha tabela certinha, mas no campo da data de inicio ele nao atualizou a data, ele só atualiza quando eu dou um refresh na pagina.
segue meu código:
view:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:a4j="http://richfaces.org/a4j"
xmlns:rich="http://richfaces.org/rich"
xmlns:p="http://primefaces.prime.com.tr/ui">
<head>
</head>
<body>
<h:form id="formCon">
<!-- Tabela de Conexões -->
<p:panel style="width:98%;margin:8px;" id="conexoes">
<f:facet name="header">
<h:panelGrid columns="9" id="filtro">
<h:outputText value="Tabela de Conexão"/>
<div style="width:200px"/>
<h:outputText value="Data Inicio: " />
<p:calendar value="#{calendarioBean.data_inicio}" pattern="dd/MM/yyyy" id="inicio"/>
<div style="width:20px"/>
<h:outputText value="Data Fim: " />
<p:calendar value="#{calendarioBean.data_fim}" pattern="dd/MM/yyyy"/>
<div style="width:20px"/>
<h:commandButton value="Ok" onclick="submit()">
</h:commandButton>
</h:panelGrid>
</f:facet>
<p:dataTable id="tableHistCon" style="text-align:center;" update="inicio" paginatorPosition="top" errorMessage="Ocorreu erro." emptyMessage="Nenhum registro foi encontrado." rows="12" value="#{historicoConexaoBean.listHistCon_Aux}" var="lista" dynamic="false or true" paginator="true">
<p:column filterBy="#{lista.equipamento.nome}">
<f:facet name="header">
<h:outputText value="Equipamento" />
</f:facet>
<h:outputText value="#{lista.equipamento.nome}" />
</p:column>
<p:column filterBy="#{lista.dataInicio}">
<f:facet name="header">
<h:outputText value="Data Início" />
</f:facet>
<h:outputText value="#{lista.dataInicio}"/>
</p:column>
<p:column filterBy="#{lista.dataFim}">
<f:facet name="header">
<h:outputText value="Data Fim" />
</f:facet>
<h:outputText value="#{lista.dataFim}"/>
</p:column>
<p:column filterBy="#{lista.tempoConectado}">
<f:facet name="header">
<h:outputText value="Tempo Conectado" />
</f:facet>
<h:outputText value="#{lista.tempoConectado}"/>
</p:column>
<p:column filterBy="#{lista.tempoIndisponível}">
<f:facet name="header">
<h:outputText value="Tempo Indisponível" />
</f:facet>
<h:outputText value="#{lista.tempoIndisponível}" />
</p:column>
</p:dataTable>
</p:panel>
</h:form>
</body>
</html>
bean:
public class HistoricoConexaoBean {
private List<HistoricoCon_Auxiliar> listHistCon_Aux = new ArrayList<HistoricoCon_Auxiliar>();
// Declaracao dos Beans para acesso ao banco de dados
private HistConBean historicoConBean = new HistConBean();
private EquipamentoBean equipBean = new EquipamentoBean();
private GraficoConexaoBean graficoConBean = new GraficoConexaoBean();
private CalendarioBean calBean = new CalendarioBean();
// Criação dos Lists
private List<HistoricoCon> historico;
private List<HistoricoCon> _historico;
private int qtdRegistros=200;
public int getQtdRegistros() {
return qtdRegistros;
}
public void setQtdRegistros(int qtdRegistros) {
this.qtdRegistros = qtdRegistros;
}
// objetos de uso generico
Equipamento equip;
HistoricoCon_Auxiliar histCon_Aux;
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
SimpleDateFormat sdfData = new SimpleDateFormat("dd/MM/yyyy");
public void buscaHistorico()
{
equip = new Equipamento();
equipBean.setIdEquipamento(GuardaContaDetalhes.getId_equip());
equip = equipBean.findById();
historico = new ArrayList<HistoricoCon>();
historicoConBean = new HistConBean();
historicoConBean.setEquipamento(equip);
listHistCon_Aux = new ArrayList<HistoricoCon_Auxiliar>();
i=0;
for(HistoricoCon h:historico)
{
if(i==qtdRegistros)
{
try
{
// Aqui eu atualizo o meu bean com o novo valor
calBean.setData_inicio(sdfData.parse(h.getDataHoraDesconexao()));
}
catch (Exception e)
{
break;
}
}
i++;
// Aqui vai o código que monta a minha lista
}
}
public void setlistHistCon_Aux(List<HistoricoCon_Auxiliar> list) {
listHistCon_Aux=list;
}
public List<HistoricoCon_Auxiliar> getlistHistCon_Aux() {
listHistCon_Aux = new ArrayList<HistoricoCon_Auxiliar>();
buscaHistorico();
return listHistCon_Aux;
}
}
Não sei se consegui ser muito clara mas espero que possam me ajudar!
Vlw!

