Olá, preciso mostrar a mensagem “Não há dados para serem exibidos.” caso a lista esteja vazia, no programa, se a lista estiver vazia não chega
a mostrar o hearder pois uso a propriedade not empty… Mas como faço para mostrar uma mensagem? Dá para colocar um if aqui dentro?
O <p:dataTable> do primefaces tem o atributo emptyMessage, que faz exatamente o que você quer.
Com <h:dataTable>, tente fazer assim
<h:dataTable value="#{epubVersionamentoBean.voEpubVersionamentoList}">
...
</h:dataTable>
<h:outputText value="Não há dados para serem exibidos!" rendered="#{empty epubVersionamentoBean.voEpubVersionamentoList}" />
Não sei se isso é possível e no momento não tenho como testar ou pesquisar, mas acredito que seja.
Desta forma, quando a lista não estiver vazia (not empty) irá exibir a tabela e qndo ela estiver vazia ira exibir a mensagem.
Oi gente, primeiramente obrigado a ajuda de todos, vou detalhar a questão:
Assim que a tela abre, vem um campo de pesquisa; OK
Assim que o usuário digita a palavra-chave e clica em pesquisar o que ele digitou servirá de parametro para pesquisa SELECT * FROM Tabela WHERE parametro OK
Neste momento se tiver dados eles irão aparecer OK
A questão é, e se não tiver dados, a lista for vazia, após clicar em pesquisar, daí sim mostrar “Não há dados…”
Assim que a tela abre não mostra o header pois estou usando
isto é, só mostra o dataTable caso haja dados na lista… porém se a consulta retornar uma lista vazia, gostaria dizer q não há dados, mas pra isso
o usuário deve clicar, a condição fica acredito q no clique né? Tipo:
1-digitou palavra-chave
2-efetua select where parametro
? tem dados ?
se sim mostra
senão “Não há dados pra serem exibidos”
Se eu entendi, ou você mostra a table ou mostra a mensagem. É isso?
Se for isso, use um outputText com rendered dinamico, controlado por um atributo boolean do managed bean.
<h:outputText value="Não há dados para serem exibidos!" rendered="#{bean.exibeMsgListaVazia}" />Esse atributo será iniciado com false e não será exibido quando vc acessar a página.
public class Bean {
private boolean exibeMsgListaVazia = false;
// get / set
}
Quando clicar no botão pesquisar, se a lista estiver vazia você altera exibeMsgListaVazia para true;
qdo. a tela aparece pela primeira vez… ela aparece sem nada… após o clique se tiver dados ele mostra e se não tiver dados deveria
neste momento mostrar a mensagem d q n há dados…
Entendi. Mas essa “solução” que eu passei faz exatamente isso.
Quando vc entrar na tela, o atributo que controla o rendered está com o valor = false, portanto, a mensagem não será exibida.
Quando vc clicar no botão pesquisar, vc faz um teste na lista. Se estiver vazia, você altera o atributo que controla o rendered para true e a mensagem é exibida. Se não estiver vazia, a tabela será renderizada e a mensagem não será exibida.
[quote=finotti]Entendi. Mas essa “solução” que eu passei faz exatamente isso.
Quando vc entrar na tela, o atributo que controla o rendered está com o valor = false, portanto, a mensagem não será exibida.
Quando vc clicar no botão pesquisar, vc faz um teste na lista. Se estiver vazia, você altera o atributo que controla o rendered para true e a mensagem é exibida. Se não estiver vazia, a tabela será renderizada e a mensagem não será exibida.[/quote]