[Resolvido] Primefaces - dataTable selection perdendo valor

Olá Pessoal !!!

Tenho o seguinte xhtml que cadastra dados bancários. Ao clicar em remover abre um dialog para confirmação. Funciona normalmente em outros xhtml. Através do debug notei que os valores chegam normalmente quando abre o dialog. Mas quando clico em “Sim” para remover minha classe MB é lida novamente. Talvez aqui o erro, mas não achei o porque. Nas outras MB só chama o método de deletar normalmente. Se alguém puder ajudar agradeço.

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:p="http://primefaces.prime.com.tr/ui">

    <ui:include src="../includes/head.xhtml"/>

    <h:body>
        <f:view contentType="text/html">

            <ui:include src="../includes/cabecalho.xhtml"/>

            <div id="conteudo">
                <p:messages id="msgConfig" globalOnly="true"/>

                <h:form id="formDados">

                    <p:panel style="border: none; padding: 0px; margin: 0px;">
                        <p:messages id="msgs"/>
                    </p:panel>

                    <p:tabView effect="opacity" effectDuration="normal">

                        <p:tab title="Dados Bancários">
                            <p:panel style="padding: 0px; margin: 0px;">
                                <br/>
                                <p:outputPanel id="opDadosBancarios">

                                    <p:dataTable
                                        value="#{configMB.listDadosBancarios}"
                                        var="bc"
                                        id="dtDadosBancarios"
                                        selection="#{configMB.listaDadosBancariosDel}"
                                        paginator="true"
                                        paginatorPosition="bottom"
                                        paginatorAlwaysVisible="false"
                                        rows="10"                                        
                                        emptyMessage="Nenhum dado bancário encontrado">
                                        <f:facet name="header">
                                            Dados Bancários Cadastrados
                                        </f:facet>

                                        <p:column style="width: 50px" selectionMode="multiple" />

                                        <p:column headerText="Banco" style="width: 200px">
                                            <h:outputText value="#{bc.codigo_banco.nome}"/>
                                        </p:column>

                                        <p:column headerText="Carteira" style="width: 200px">
                                            <h:outputText value="#{bc.numero_carteira}"/>
                                        </p:column>

                                        <p:column headerText="Agência" style="width: 100px">
                                            <h:outputText value="#{bc.nro_agencia} - #{bc.digito_agencia}"/>
                                        </p:column>

                                        <p:column headerText="Conta Corrente" style="width: 100px">
                                            <h:outputText value="#{bc.nro_conta} - #{bc.digito_conta}"/>
                                        </p:column>

                                        <p:column style="width: 35px">
                                            <p:commandButton alt="Editar" image="ui-icon ui-icon-pencil"
                                                             action="#{configMB.editDadoBancario}"
                                                             update="formDadosBancarios, msgConfig"
                                                             oncomplete="dadosbancarios.show();"
                                                             process="@this">
                                                <f:setPropertyActionListener value="#{bc}" target="#{configMB.dadoBancario}"/>
                                            </p:commandButton>
                                        </p:column>
                                    </p:dataTable>                     

                                    <h:panelGrid columns="2" cellpadding="0" cellspacing="0" border="0">

                                        <p:commandButton
                                            value="Adicionar" image="ui-icon ui-icon-plus"
                                            action="#{configMB.addDadoBancario}"
                                            oncomplete="dadosbancarios.show();"
                                            process="@this"
                                            update="formDadosBancarios, msgConfig" />

                                        <p:commandButton 
                                            value="Remover"
                                            onclick="cdRemoveDadoBanc.show()"
                                            image="ui-icon-cancel"
                                            process="dtDadosBancarios"
                                            update="msgConfig"
                                            rendered="#{not empty configMB.listDadosBancarios}" />
                                    </h:panelGrid>

                                </p:outputPanel>
                            </p:panel>
                        </p:tab>


                    </p:tabView>

                    <p:commandButton image="ui-icon ui-icon-disk"
                                     value="Gravar"
                                     action="#{configMB.cadastraConfig}"
                                     rendered="#{menusMB.permissao(40, '3')}"
                                     update="formDados"
                                     process="formDados"
                                     oncomplete="confirmagravar(xhr, status, args)"/>

                </h:form>

                <p:confirmDialog message="Deseja realmente excluir?"
                                 header="Excluir Dados Bancários"
                                 severity="alert"
                                 closable="false"
                                 modal="true"
                                 widgetVar="cdRemoveDadoBanc">

                    <h:form>
                        <p:commandButton action="#{configMB.removeDadoBancario}"
                                         process="@this"
                                         update="formDados:opDadosBancarios, msgConfig"
                                         value="Sim"
                                         oncomplete="cdRemoveDadoBanc.hide()">
                        </p:commandButton>
                        <p:commandButton value="Não" oncomplete="cdRemoveDadoBanc.hide()"/>

                    </h:form>

                </p:confirmDialog>

            </div>
        </f:view>
    </h:body>
</html>

cara… da uma olhada no escopo do teu MB…
ve o teu escopo… se tiver diferente de @ViewScoped tente colocar este valor

flw…

Problema de escopo realmente. Na real ele não estava definido no MB. Inseri @ViewScoped e resolveu. Detalhe.

Obrigado

Pra mim tambem deu certo! no meu caso não estava ocorrendo paginação do dataTable…Valeu…