Boa Tarde a todos do fórum…
Preciso fazer um índice Alfabético para um sistema, fiz ele com o <p:dataGrid> onde gero as letras dinamicamente para a pesquisa
Sendo assim:
1º Clico em uma letra
2º Faço a consulta por todos os registros que comecem com tal letra;
3º Retorno a consulta para um dataTable abaixo do dataGrid
os tres passos ele faz corretamente, o problema é quando eu uso FilterBy para buscar um registro no DataTable, depois que o utilizo
e tento clicar em outra letra para consulta, o DataTable nao é atualizado…sendo que no bean ele retornou os dados corretament, só nao
atualizou na pagina…
mas se eu utilizar novamente o Filtro, ele atualiza a tabela com os dados buscados anteriormente…
Segue o <p:dataGrid>:
<p:dataGrid id="dtgPesquisaLetra" columns="28" rows="28" value="#{combosBean.letrasAlfabeto}" var="letra"
style="max-width: 99%; padding: 0.5px" >
<p:column >
<p:commandButton id="btnPesquisaLetra"
value="#{letra.letra}"
style="font-size: 7px; width: 85%; height: 85%"
actionListener="#{listarBean.buscarPorLetra(letra.letra)}"
update="form1:tabelaConts"
immediate="true">
</p:commandButton>
</p:column>
</p:dataGrid>
Segue o DataTable:
<p:dataTable value="#{listarBean.contatos}" var="cont" styleClass="listaContatosTabela"
emptyMessage="Nenhum contato encontrado" id="tabelaConts"
paginator="true" rows="15" currentPageReportTemplate="(Página {currentPage} de {totalPages})"
paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
rowsPerPageTemplate="5, 10, 15, 20" selectionMode="single" paginatorPosition="bottom"
style="margin-left: auto; margin-right: auto; width: 99%">
<p:columnGroup type="header">
<p:row>
<p:column headerText="Tipo do Contato"
filterBy="#{cont.tipoContato}"
filterMatchMode="contains"
style="text-align: center"/>
<p:column headerText="Nome"
filterBy="#{cont.nome}"
filterMatchMode="contains"
style="text-align: center"/>
<p:column headerText="Telefone"
filterBy="#{cont.telefone}"
filterMatchMode="contains"
style="text-align: center"/>
<p:column headerText="Criado por"
filterBy="#{cont.criadoPor}"
filterMatchMode="contains"
style="text-align: center" />
<p:column headerText="Favorito" style="text-align: center;" filterBy="#{cont.favorito}"
filterOptions="#{combosBean.favoritos}" filterMatchMode="exact" />
</p:row>
</p:columnGroup>
<p:column style="text-align: center">
<h:outputText value="#{cont.tipoContato}"/>
</p:column>
<p:column style="text-align: center">
<h:outputText value="#{cont.nome}"/>
</p:column>
<p:column style="text-align: center">
<h:outputText value="#{cont.telefone}"/>
</p:column>
<p:column style="text-align: center">
<h:outputText value="#{cont.criadoPor}"/>
</p:column>
</p:dataTable>