DataTable

Galera estou desenvolvendo uma aplicação a qual eu tenho um DataTable, na coluna de ações eu tenho um botão de excluir, quando eu clico nele o registro é excluido normalemnte, porém o DataTable some todos os dados tendo que atualizar a página para que os dados voltem a aparecer.

Segue o código

<p:dialog  modal="true" header="Ponto Parada" widgetVar="pont" resizable="true" width="1200px" id="pont">
        
            <table><tr><td width="1200px" valign="top">
                    <p:gmap id="gmapPP" center="#{TrPontosRotaSB.lat},#{TrPontosRotaSB.lng}" zoom="#    {TrPontosRotaSB.zoom}" type="ROADMAP" style="width: 100%; height:600px" model="#{TrPontosRotaSB.advancedModel}"
                          widgetVar="mapP">

                    </p:gmap>
                </td><td valign="top">
                    
                    <p:commandButton value="Adicionar"  oncomplete="pontosrota.show()" update="@([id$=dialog2])" style="font-size:9px"  actionListener="#{TrPontosRotaSB.prepararAdicionar}"/>
                
                    <br/><br/>
                    
                    <p:dataTable id="tabPP" var="list" value="#{TrPontosRotaSB.getListEntityTabular()}" style="font-size: 9px; width:340px"  scrollable="true" scrollHeight="580">            

                        <p:column headerText="Ident. Ponto" style="width: 35%">#{list.popaCodigo.popaIdentificacao}</p:column>
                        <p:column headerText="Latitude" style="width: 35%">#{list.popaCodigo.popaCoordX}</p:column>
                        <p:column headerText="Longitude" style="width: 35%">#{list.popaCodigo.popaCoordY}</p:column>
                        <p:column headerText="Ações" style="width: 20%"> <center>
                        <p:commandButton value="Deletar" action="#{TrPontosRotaSB.deletar()}" style="font-size:8px" update="tabPP"/>
                            </center>    
                        </p:column>
                    </p:dataTable>
                    
                </td></tr> 
            
            </table>
        </p:dialog>

Alguém sabe como resolver ?

poste o managed bean

@ManagedBean(name="TrPontosRotaSB")
@ViewScoped
public class TrPontosRotaSB extends SessionBeanTabular<TrPontosRota>{

    private static final String PONTO_ONIBUS = "/resources/imagens/onibus.png";    
    private FacesContext fc;
    
    @Getter @Setter 
    private MapModel advancedModel;
    @Getter @Setter 
    private double lat = -20.83747;
    @Getter @Setter 
    private double lng = -41.11674;
    @Getter @Setter
    private Integer zoom = 14;
    
    @Getter @Setter
    @ManagedProperty(value="#{TrRotaSB}")
    private TrRotaSB rotaSB;    

    private void addModel(TrPontoParada p, String caminho) {
        fc = FacesContext.getCurrentInstance();
        LatLng c = new LatLng(p.getPopaCoordX(), p.getPopaCoordY());
        advancedModel.addOverlay(new Marker(c, p.getPopaIdentificacao(), p, fc.getExternalContext().getRequestContextPath() + caminho));
    }
    
    public String listaPontosRota(TrRota r){
        System.out.println(rotaSB.getEntidade());
        rotaSB.setEntidade(new TrRota());
        try {
            
            advancedModel = new DefaultMapModel(); // limpando o mapa
            setListEntity(new ArrayList()); // limpando a grid da tela
            listEntity = new ArrayList(); // limpando a lista de consulta        
            
            if (r!= null) {
                listEntity = getService().consultaPadrao(null, String.valueOf(r.getRotaCodigo()));
            }
            
            for (Serializable s : listEntity) {
                TrPontosRota p = (TrPontosRota) s;

                addModel(p.getPopaCodigo(), PONTO_ONIBUS);            
            }
            
            rotaSB.setEntidade(r);
        } catch (ServiceException ex) {
            ex.printStackTrace();
        }
        
        return "";
    }     
    
    @Override
    public DataModel getListEntityTabular() {
        listEntityTabular = new ListDataModel(listEntity);

        return listEntityTabular;
    }
    
    @Override
    public TrPontosRota getEntidade() {
        if (entidade == null) {
            entidade = (TrPontosRota) Entidade.newInstance(TrPontosRota.class);
            
            entidade.setRotaCodigo(rotaSB.getEntidade());
        }
        return entidade;
    }
    
    @Override
    public String confirmar() throws ServiceException {
        return super.confirmar();
    }
    
}

troque o action do botão deletar por actionListener

Troquei o action do botão deletar pelo actionListener, porém ainda continua limpando todo o DataTable.

coloque o process=@this

Coloquei, mas mesmo assim continua limpando o DataTable.

estranho, mas posta a foto da página completa

Quando realizo a pesquisa ele me lista os dados

Quando eu clico em algum deste deletar ele faz conforme a imagem abaixo

desculpe, quando eu disse a página completa quis dizer o .xhtml