selectionMode multiple Primefaces

Pessoal estou com o seguinte problema ao utilizar o componente dataTable:
Quando eu defino o atributo selectionMode=“multiple” do meu componente column no dataTable ele cria os checkboxs eu seleciona envio para o meu bean, até ai blz.
Mas quando eu preciso editar as informações no formulario eu tenho que carregar o dataTable com os checkboxs selecionados sendo que o primefaces não carrega eles selecionandos, nem mesmo faz uma chamada para o meu método get que retorna os dados que estão salvos.

Alguém ja passou por esse problema?

Também tive esse problema. Então deixei single e mesmo assim consegui selecionar vários check e enviar corretamente. :shock:

como ficou o codigo para a tua solução?

[code] <p:dataTable var=“iAssoc”
value="#{importAssociacaoMB.lassocAssoc}"
selection="#{importAssociacaoMB.assocAssocs}"
dynamic=“true”>

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

                    <p:column>
                        <f:facet name="header">Associação</f:facet>
                       //
                    </p:column>    

                </p:dataTable> 

[/code]

E no MB


// Declaracao
AssociacaoAssociado[] assocAssocs;

// Ao clicar em um botao do form que grava
        for (int i = 0; i < assocAssocs.length; i++) {
            // Pega obj
         }

Isso ai eu consegui fazer, mas o problema e se eu tiver que carregar esse dataTable com os checkboxs selecionados, o prime não faz isso

Putz to com o mesmo problema, alguém ai tem idéia como faço para trazer os checks da lista selecioandos ?

Eu fiz assim na minha aplicação e funcionou:

assocAssocs= new AssociacaoAssociado[]{};                
                
List<AssociacaoAssociado> list = persitenceController.findAllAssociadoComCheckBoxMarcado();

if (list != null && list.size() > 0) {
       assocAssocs = list.toArray(new AssociacaoAssociado[list.size()]);
}

Att.

Lucas Lopes Nunes

na minha estou usando o filterby tbm, trago os obj selecionados de boa, porem o filter não funciona. alguem ai manja disso??

segue, o codigo

<p:dataTable id="tableProdutos" value="#{pnMB.listDataModelProd}" var="q" emptyMessage="No Registry" 
                             paginator="true" rows="50" editable="true"
                              paginatorTemplate= " {CurrentPageReport}  {FirstPageLink} {PreviousPageLink} 
                               {PageLinks} {NextPageLink} {LastPageLink} 
                               {RowsPerPageDropdown}" 
                               filteredValue="#{pnMB.listDataModelProdFilter}"
                               selection="#{pnMB.produtosSelecionados}" >  
                    
                    <p:column selectionMode="multiple" style="width:2%" />

<p:column id="ativo" headerText="Ativo" filterBy="#{q.ativo}"  filterMatchMode="startsWith"
                              filterStyle="width: 40px;" rendered="true">
                        <h:outputText value="#{q.ativo}"/>
                    </p:column>

                    <f:facet name="footer">
                        <center>
                            <p:commandButton  id="btnU" value="Update" 
                                              oncomplete="dialogUpdate.show()"
                                              actionListener="#{pnMB.abreDialog()}"
                                              update=":form:outMensagem"/>
                        </center>
                    </f:facet>
                </p:dataTable>

lista datamodel

  package br.com.teste.models;

import java.util.List;
import javax.faces.model.ListDataModel;
import org.primefaces.model.SelectableDataModel;

/**
 *
 * @author bruno.machado
 */
public class ProductsDataModel  extends ListDataModel<Products> implements SelectableDataModel<Products>{

    public ProductsDataModel(){
        
    }
    
    public ProductsDataModel(List<Products> data){
        super(data);
    }
    
     @Override
    public Products getRowData(String rowKey) {
        List<Products> produtos = (List<Products>) getWrappedData();       
         for (Products p : produtos) {
             String id = ""+p.getIdProduto(); 
             if(id.equals(rowKey)){
                 return p;
             }
         }
         return null;
    }
    
    @Override
    public Object getRowKey(Products t) {
       return t.getIdProduto();
    }

    
}