Tenho um dialog com um dataTable dentro. Esse dataTable fica carregando toda vez que eu abro a página e isso causa lentidão, pois ele busca os dados no BD.
Eu pensei em evitar isso criando uma condicional dentro do List que popula o dataTable e essa condicional está funcionando.
Quando entro na página o sistema n carrega os dados do dataTable como eu queria, apenas carrega quando eu chamo o dialog em que o dataTable está.
Dentro do Dialog eu trabalho normalmente. Quando eu clico em sair eu devo chamar o método que “liberou” o uso do dataTable e mudar o valor do atributo. Este é o problema o botão sair não chama o método e nesse form ainda tenho mais 1 botão que está funcionando normalmente.
Segue o código:
Este botão está dentro do mesmo form que o botão Gravar, mas o Gravar funciona.
Esse erro foi na hora de colar o código aqui. Aprontei um rolo dai acabou ficando assim, mas no código está certo.
Muito estranho isso, pois como você deve ter percebido coloquei alguns println() para ver se estava passando, quando clico no menu que chama esse método aparece as mensagens na tela, mas quando clico no botão nada acontece ele apenas da o update no form.
Esse é o menu. Ele apenas faz um actionListener que funciona e da um update no dialog que têm o dataTable dentro.
Por exemplo:
A primeiva vez que clico nele ele troca o valor da variável para true e apartir dai o dataTable lista os dados a segunda vez ele troca para false e o sistema para de listar o dataTable e assim quantas vezes eu clicar.
Pior que estou. É pq são dois forms tentei com apenas um e tbm não funcionou. Nesse exemplo estou atualizando apenas o segundo form que é o form do dataTable.
Insira as propriedades immediate com o valor true, pra pular toda parte de validação do formulario.
Também insira a propriedade process para apenas ser submetido este botão.
Insira as propriedades immediate com o valor true, pra pular toda parte de validação do formulario.
Também insira a propriedade process para apenas ser submetido este botão.[/quote]
Muito obrigado! Agora aprendi mais duas novas propriedades. hehe
Tenho um dialog com um dataTable dentro. Esse dataTable fica carregando toda vez que eu abro a página e isso causa lentidão, pois ele busca os dados no BD.
Eu pensei em evitar isso criando uma condicional dentro do List que popula o dataTable e essa condicional está funcionando.
Quando entro na página o sistema n carrega os dados do dataTable como eu queria, apenas carrega quando eu chamo o dialog em que o dataTable está.
Dentro do Dialog eu trabalho normalmente. Quando eu clico em sair eu devo chamar o método que “liberou” o uso do dataTable e mudar o valor do atributo. Este é o problema o botão sair não chama o método e nesse form ainda tenho mais 1 botão que está funcionando normalmente.
Segue o código:
Este botão está dentro do mesmo form que o botão Gravar, mas o Gravar funciona.
O método para “liberar” ou não o carregamento do dataTable.
public void carregarCategoria([u][b]ActionEvent e[/b][/u]){
System.out.println("VALOR INICIAL" + carregarListaCategoria);
if (carregarListaCategoria == true) {
System.out.println("Valia TRUE mudando para FALSE");
carregarListaCategoria = false;
}
else if(carregarListaCategoria == false){
System.out.println("Valia FALSE mudando para TRUE");
carregarListaCategoria = true;
}
}
Detalhe, eu libero o dataTable em um menu e esse menu está funcionando a primeira vez quando clico ele muda para true a segunda ele muda para false.
Alguem sabe o pq o bottão não está funcionando?[/quote]
não sei se você já conseguiu resolver e também não sei se é regra do JSF, mas quando tem um actionListener no seu XHTML o método requer um parâmetro ActionEvent e.