Olá senhores!
Estou com um problema aqui que é o seguinte: Tenho um campo de texto com um botão do lado para pesquisa. Quando é clicado nesse botão, a aplicação exibe um modalPanel com os resultados da busca, considerando o conteúdo preenchido no campo. O problema é que eu não estou conseguindo os resultados dessa busca, já tentei várias maneira de vários tutoriais, mas, ou o modalPanel some, ou os dados somem ou a dataTable fica em branco.
Seguem os trechos de código:
Código do edit e do botão de buscar
<h:panelGroup>
<h:inputText id="area" value="#{article.selectedArea}">
</h:inputText>
<a4j:commandButton id="searchAreaButton" value="Procurar"
reRender="searchAreaPanel" action="#{article.fillAllAreas}"
onclick="javascript:Richfaces.showModalPanel('searchArea')" />
</h:panelGroup>
Código do Bean para preenchimento dos dados da tabela
public String fillAllAreas() {
if (selectedArea != null) {
JPASession session = JPASessionFactory.createSession("sober");
List<Area> allAreas = session.query("SELECT a FROM Area a WHERE lower(a.descricao) LIKE ?", "%" + selectedArea + "%");
areas = new ListDataModel<Area>(allAreas);
}
return null;
}
Código do ModalPanel
<a4j:outputPanel id="searchAreaPanel" layout="none">
<rich:modalPanel id="searchArea" width="320" height="240">
<f:facet name="header">
<h:outputText value="Areas" />
</f:facet>
<f:facet name="controls">
<h:panelGroup>
<h:graphicImage value="/images/controls/close.png"
styleClass="hidelink" id="hideAreaPanel"/>
<rich:componentControl for="searchArea" attachTo="hideAreaPanel"
operation="hide" event="onclick"/>
</h:panelGroup>
</f:facet>
<h:panelGroup id="areasDataTable">
<h:panelGroup rendered="#{article.allAreas == null }">
<h:graphicImage value="/images/lp.gif" style="align: center" />
</h:panelGroup>
<h:panelGroup rendered="#{article.allAreas != null}">
<h:form>
<rich:scrollableDataTable id="listAreas" value="#{article.allAreas}"
var="area" rows="10" width="200px" height="180px">
<rich:column>
<f:facet name="header">
<h:outputText value="Areas" />
</f:facet>
<h:commandLink id="selectArea" value="#{area.sigla}"
action="#{article.selectArea}">
<rich:componentControl for="searchArea" attachTo="selectArea"
operation="hide" event="onclick" />
</h:commandLink>
</rich:column>
<rich:column>
<f:facet name="header">
<h:outputText value="Descrição" />
</f:facet>
<h:outputText value="#{area.descricao}" />
</rich:column>
</rich:scrollableDataTable>
<h:commandButton value="Nova" />
</h:form>
</h:panelGroup>
</h:panelGroup>
</rich:modalPanel>
</a4j:outputPanel>
No caso, eu estou mandando reRenderizar o a4j:outputPanel e o que está acontecendo é que quando eu clico no botão o modalPanel aparece, aparece a imagem de “processando” (lp.gif) mas quando o processo termina, o modalPanel some.
Se eu colocar para reRenderizar o panelGroup “areasDataTable”, aparece a imagem de processando, mas quando termina, não aparece nada no modalPanel, mas o modalPanel continua sendo exibido.
Se eu colo o a4j:outputPanel dentro do modalPanel, aparece a imagem de processando, mas fica nisso (não é reRenderizado).
Alguém poderia me ajudar com esse problema? Desde já agradeço.
