JD
Atualização automática de datagrid com refresh
Fechado
Pessoal,
Preciso de alguma forma ficar atualizando a cada X segundos os dados de uma tela de monitoramento com as informações contidas numa tabela.
Alguma sugestão?
Obrigado.
Preciso de alguma forma ficar atualizando a cada X segundos os dados de uma tela de monitoramento com as informações contidas numa tabela.
Alguma sugestão?
Obrigado.
Uma solução ( não ideal ) foi colocar no código:
Mas eu queria algo que não carregasse a página inteira, somente os dados.
Olá Julio, tudo bem?
Sobre sua dúvida, veja se entendi, você tem um TGrid e você quer que este TGrid, atualize em um determinado período de tempo, porém, não quer atualizar a pagina inteira, é isso?
Se for este o caso, onde você tem exatamente um TGrid, sugiro trocar o
Trocando {SuaClasse} pelo nome da classe que esta com o TGrid, caso esteja invoncando um metodo use
Trocando {SeuMetodo} pelo nome do método.
E se me permite uma sugestão, se esta rotina for apenas uma rotina de monitoramento, onde não há a necessidade de se manipular os dados (CRUD), sugiro que você crie uma tabela utilizando a classe TElement, depois crie uma rotina no backend que irá te retornar os dados no formato JSON e utilize javascript(Jquery talvez) para popular a tabela, assim você ganha desempenho e a interação do usuário fica mais amigável.
Não sei se estes são os métodos ideais, mas espero que ajude.
Opa Jheferson,
No caso eu tenho mesmo que ler de uma tabela.
Queria te agradecer pois ficou perfeito a sugestão de colocar :
Muito obrigado.
index.php?class=SystemStatusForm ( no SystemStatusForm eu coloquei o que vc sugeriu )
Aí eu naveguei e fui para
index.php?class=SettingsList
E após X segundos ele voltou para SystemStatusForm&method=onReload
Olá Julio, que bom que pude ajudar.
Poste seu código completo, deixa eu ver como esta, acredito que o problema pode esta na hora de add o script na pagina, pois esta adicionando e mantendo no DOM.
Tá aí Jheferson:
Olá Julio, o que está acontecendo é que no momento que você chama o setTimeout, o javascript ja registra isso no DOM, acionando o timer mesmo que vc mude de pagina assim que o timer terminar de contar ele vai executar, chamando a tela novamente.
Tente fazer o seguinte:
Isso irá fazer com que a chamada da pagina ocorra somente se o usuário estiver com ela aberta, pois ao navegar para outra pagina, o dom vai executar o script porem o if não deixará que a chamada ocorra novamente.
Funcionou.
Acho que entendi, dessa forma o setTimout é criado com uma checagem da classe SystemStatusForm e fazendo o onReload em caso de match. Isso?
Cara, muito obrigado.
Exatamente, assim não entra em um loop infinito.
Boa tarde, Jheferson Fonseca.
Estou usando a tua dica para atualizar minha tela de pendencias após alguns segundos.
Acontece que necessito abrir uma TWindow e com o SetTime ligado a tela do Twindow acaba fechando.
Como posso fazer para a TPage somente atualizar quando o Twindow nao tiver aberto?
Obrigado.
no caso em vez de usar addAction para chamar o TWindow use o addActionLink assim:
$btn_deli = $this->form->addActionLink
ai resolveu e não fechou mais o Twindow