Não consigo retornar um rich:modalPanel depois de remover um registro do banco usando JPA

galera bom dia, tô pagando pau pra descobriu o q é que ta acontecendo, tô usando a mesma lógica pra inserir um registro no banco de dados e pra remover, retornarnando uma mensagem após a inserção ou remoção do referido registro.
Pra inserir ta tranquilo, insere e me retorna a mensagem informando se foi ou não inserindo com sucesso.
Pra remover, localiza e remove o registro sem problema, porém não ta me retornando o modalPanel informado se foi ou não inserido com sucesso. segue abaixo o código para excluir o registro.
Estou usando JSF com hibernate e JPA.
excluiPaciente.jsf

[code]

<h:form>

<h:panelGrid columns=“3” style=" height:28px;" >
<h:outputText value=“NOME:” />
<h:inputText value="#{pacienteBean.paciente.nome}" onkeydown=“this.value = this.value.toUpperCase();“
onkeyup=“this.value = this.value.toUpperCase()” size=“60” style=” height:16px;”/>
<h:commandButton action="#{pacienteBean.procuraNome}" value=“Pesquisa” style=" height:23px;"/>
</h:panelGrid>

</h:form>

<h:form>

      <rich:spacer height="8" />
      <rich:scrollableDataTable rowKeyVar="rkv" frozenColCount="1" height="100px" rendered="#{!empty pacienteBean.lista }" 
      width="553px" rows="20" columnClasses="col" id="tab" binding="#{pacienteBean.objPaciente}"
      value="#{pacienteBean.lista }" var="p" >
     
     <h:column style="width:30px" > 
         <f:facet name="header" > 
             <h:outputText value="Id" /> 
         </f:facet> 
             <h:outputText value="#{p.id}" /> 
     </h:column> 
     
     <h:column> 
         <f:facet name="header"> 
             <h:outputText value="Nome" /> 
         </f:facet> 
             <h:outputText value="#{p.nome}" />                 
     </h:column>  
     <h:column> 
         <f:facet name="header"> 
             <h:outputText value="Endereco" /> 
         </f:facet> 
             <h:outputText value="#{p.endereco }" />                 
     </h:column>   
     <h:column> 
         <f:facet name="header"> 
             <h:outputText value="Nome da Mae" /> 
         </f:facet> 
             <h:outputText style="" value="#{p.nomeMae }" />                 
     </h:column>  
      <h:column> 
         <f:facet name="header"> 
             <h:outputText value="Data Nascimento" /> 
         </f:facet> 
             <h:outputText value="#{p.dataNasc }" />                 
     </h:column>       
       <h:column> 
         <f:facet name="header"> 
             <h:outputText value="Excluir" /> 
         </f:facet>         
            <a4j:commandButton action="#{pacienteBean.excluir}" image="imagens/delete.gif" oncomplete="#{pacienteBean.acao}" reRender="tab"/>
     </h:column>
     </rich:scrollableDataTable>
     <rich:spacer height="8px"/>  
   </h:form>
    <rich:modalPanel id="rmp"  width="250" height="100" autosized="true"  moveable="false" >      
          <f:facet name="header">
          <a onclick="Richfaces.hideModalPanel('rmp');">fechar</a> 
          </f:facet>                     
          <h:outputText value="Registro exluido com sucesso!" />    
     </rich:modalPanel>
     
     <rich:modalPanel id="erromp"  width="250" height="100" autosized="true"  moveable="false" >      
          <f:facet name="header">
          <a onclick="Richfaces.hideModalPanel('erromp');">fechar</a> 
          </f:facet>                     
          <h:outputText value="Erro ao excluir registro!" />    
     </rich:modalPanel>
     [/code]

Minha classe pacienteBean

public String excluir(){
		DAO d=new DAO();
		EntityManager em=d.getEntityManager();
		//Pega o objeto selecionado no DataTable
		paciente = (Paciente) objPaciente.getRowData();
		int codigo=paciente.getId();
		try {
			 em.getTransaction().begin();
			 paciente=em.find(Paciente.class,codigo);
		     em.remove(paciente);
		     em.getTransaction().commit();
			//limpa o objeto aluno para novas insercoes...
			paciente = new Paciente();
			this.setAcao("Richfaces.showModalPanel('rmp')");
		} catch (Exception e) {
			//se ocorrer algo errado cancela a transacao
			this.setAcao("Richfaces.showModalPanel('erromp')");
			em.getTransaction().rollback();
		}finally{
			//fecha a sessao com o banco de dados.
			em.close();
		}
		return null;
	}
private String acao;

public void setAcao(String acao) {
		this.acao = acao;
	}
	public String getAcao() {
		return acao;
	}

galera olha só, descobri que o problema ta no scrollableDataTable, se eu usar rich:dataTable funfa que é uma blz, mas eu na verdade eu tô querendo usar o scrollableDataTable, alguém pode me dizer onde é q ta o erro?

Uma sugestão. Não é o melhor dos mundos, mas quando a água começa a bater na b… o negócio fica roça…

Coloque então o rich:dataTable e envolva ele numa <div>. Veja:


&lt;div style="height: altura_desejada; overflow: auto;"&gt;

   &lt;rich:dataTable var="row"
       value="#{seuBean.suaCollection}"
       width="900px" border="0" cellspacing="0"
       cellpadding="0"&gt;

       &lt;rich:column style="text-align:left;"&gt;
           &lt;f:facet name="header"&gt;
               &lt;h:outputText value="TituloColuna" /&gt;
           &lt;/f:facet&gt;
           &lt;h:outputText value="#{row.informacao}"/&gt;
       &lt;/rich:column&gt;

&lt;/div&gt;

No dataTable sem definir o parâmetro “rows” ele vai direto. Envolvendo numa div você terá o scroll necessário.

Espero ter ajudado.

valeu pela dica brother, funcionou q é um beleza.

Obrigado!