Bom dia galera, tdo certo ? Bem, na minha aplicação o usuário pode fazer pesquisas de código e descrição de uma sala. Ambas as pesquisas aparecem em um dataTable. Nele, contém uma lista em lazy. O que estou tentando fazer é o seguinte: criei um botão limpar, para que o usuário clicando nele possa limpar os inputText’s e também a lista. Só que eu não estou sabendo como limpar a lista de uma maneira correta. Abaixo os códigos:
Meu xhtml:
<p:panel header="Filtros de Consulta" id="parametros">
<p:growl id="growl1" life="#{constantesBean.tempoExibicaoMensagens}"/>
<table border="0" cellpadding="2" cellspacing="0" style="margin-right: 40px">
<h:panelGrid columns="2" width="100%">
<h:panelGrid columns="2">
<td align="right">Código:</td>
<h:panelGrid columns="2">
<p:inputMask id="codigoF" size="6" placeHolder="" mask="9?9999" value="#{salaJsfBean.codigo}"/>
</h:panelGrid>
<td align="right">Descrição:</td>
<h:panelGrid columns="2">
<p:inputText id="descricaoF" size="20" style="width: 200%" value="#{salaJsfBean.descricao}"/>
</h:panelGrid>
</h:panelGrid>
</h:panelGrid>
<tr>
<td>
<p:defaultCommand target="BtnfiltraSala"/>
<p:commandButton id="BtnfiltraSala" actionListener="#{salaJsfBean.atualizarListaProcura()}" value="Consultar" update="tabela1" process="parametros" icon="search"/>
<p:commandButton id="BtnLimpar" actionListener="#{salaJsfBean.limpaCampo()}" value="Limpar" process="@this" update=":form1:tab:codigoF :form1:tab:descricaoF :form1:tab:escolaF tabela1" icon="limpar"/>
<treap:btnRelatorio metodo="#{salaJsfBean.geraRelatorioSalasPDF()}"/>
</td>
</tr>
</table>
</p:panel>
<br/>
<p:dataTable id="tabela1"
value="#{salaJsfBean.salaList}"
var="item"
emptyMessage="Nenhum registro encontrado."
paginator="true"
rows="10"
pageLinks="5"
paginatorPosition="bottom"
paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink}
{PageLinks} {NextPageLink} {LastPageLink} Exibir: {RowsPerPageDropdown}
Encontrados: #{salaJsfBean.salaList.rowCount}"
rowsPerPageTemplate="10,25,35,50"
lazy="true">
<p:column headerText="Código" style="width:07%">
<h:outputText value="#{item.codigo}"/>
</p:column>
<p:column headerText="Escola">
<h:outputText value="#{item.escola.nomeCompleto}"/>
</p:column>
<p:column headerText="Descrição">
<h:outputText value="#{item.descricao}"/>
</p:column>
<p:column headerText="Nro. de Cadeiras">
<h:outputText value="#{item.numeroCadeiras}"/>
</p:column>
<p:column headerText="Finalidade">
<h:outputText value="#{item.finalidade}"/>
</p:column>
<p:column headerText="Ação" width="50">
<treap:btnCrudEditar bean="#{salaJsfBean}"/>
<treap:btnCrudExcluir bean="#{salaJsfBean}"/>
</p:column>
</p:dataTable>
Meu bean:
.
.
.
.
public void limpaCampo() {
if (codigo != null || !descricao.isEmpty() || !escola.isEmpty()) {
descricao = "";
escola = null;
codigo = 99999;
atualizarListaProcura();
codigo = null;
}
}
@Override
public void atualizarListaProcura() {
if (codigo != null) {
descricao = "";
escola = null;
}
salaList = new LazyDataModel<Sala>() {
@Override
public List<Sala> load(int first, int pageSize, String sortField, SortOrder sortOrder, Map<String, String> filters) {
return s.listaSalaPaginada(montaParametros(), first, pageSize, sortField, sortOrder);
}
};
salaList.setRowCount(s.listaSalaCount(montaParametros()));
}
private Map<String, Object> montaParametros() {
Map<String, Object> p = new HashMap<String, Object>();
p.put("escola", escola);
p.put("codigo", codigo);
p.put("descricao", descricao);
return p;
}
.
.
.
.
Estou passando para o codigo o 9999 pois esse número teoricamente é difícil de existir, então consulta e limparia a lista…Dessa maneira está limpando a lista e tal, mas se possível queria aber se tem como limpar ( .clear) na lista que possui formato lazy…Se alguém puder ajudar, agradeceria mto…Vlw