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 ?
llnunes
Setembro 19, 2012, 9:16am
#7
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();
}
}