Erro ao usar o filterBy do primefaces

Boa tarde pessoal, estou desenvolvendo uma aplicação com primefaces 3.2, mais estou tendo problemas na hora de usar o filterBy em um p:dataTable. Ou seja, ao lista a eu consigo alterar e excluir normalmente, mais a parti do momento em que eu faço uma busca pelo filterBy e tento alterar, ele só me retorna o registro que esta na primeira linha do dataTable:

Segue o código:

listEscolas.xhtml

<?xml version="1.0" encoding="UTF-8"?>
            <p:growl id="growl" showDetail="true" life="300"/>     
            <p:dialog id="dlgescola" header="Alterar Escola" widgetVar="altEscola" width="450">
                <h:form>
                    <h:panelGrid columns="3">

                        <h:outputLabel for="codigo_inep" value="Código Inep: *" />  
                        <p:inputText id="codigo_inep" value="#{escolaController.escola.codigo_inep}" required="true" label="Código Inep">  
                            <f:validateLength minimum="2" />  
                            <p:ajax update="msgCodigo_inep" event="keyup" />
                        </p:inputText>  
                        <p:message for="codigo_inep" id="msgCodigo_inep" display="icon"/>

                        <h:outputLabel for="nome" value="Nome: *" />  
                        <p:inputText id="nome" value="#{escolaController.escola.nome}" required="true" label="Nome">  
                            <f:validateLength minimum="2" />  
                            <p:ajax update="msgNome" event="keyup" />
                        </p:inputText>  
                        <p:message for="nome" id="msgNome" display="icon"/>

                        <h:outputLabel for="cnpj" value="CNPJ: *" />  
                        <p:inputMask id="cnpj" value="#{escolaController.escola.cnpj}" mask="99.999.999/9999-99" required="true" label="CNPJ">  
                            <f:validateLength minimum="2" />  
                            <p:ajax update="msgCnpj" event="keyup" />
                        </p:inputMask>  
                        <p:message for="cnpj" id="msgCnpj" display="icon"/>

                        <h:outputLabel for="telefone" value="Telefone: *" />  
                        <p:inputMask id="telefone" value="#{escolaController.escola.telefone}" mask="(99)9999-9999" required="true" label="Telefone">  
                            <f:validateLength minimum="2" />  
                            <p:ajax update="msgTelefone" event="keyup" />
                        </p:inputMask>  
                        <p:message for="telefone" id="msgTelefone" display="icon"/>

                        <h:outputLabel for="rua" value="Rua: *" />  
                        <p:inputText id="rua" value="#{escolaController.escola.rua}" required="true" label="Rua">  
                            <f:validateLength minimum="2" />  
                            <p:ajax update="msgRua" event="keyup" />
                        </p:inputText>  
                        <p:message for="rua" id="msgRua" display="icon"/>

                        <h:outputLabel for="numero" value="Número: " />  
                        <p:inputText id="numero" value="#{escolaController.escola.numero}" label="Número">
                            <f:validateLength minimum="0" />  
                        </p:inputText>
                        <p:message for="numero" display="icon"/>

                        <h:outputLabel for="bairro" value="Bairro: *" />  
                        <p:inputText id="bairro" value="#{escolaController.escola.bairro}" required="true" label="Bairro">  
                            <f:validateLength minimum="2" />  
                            <p:ajax update="msgBairro" event="keyup" />
                        </p:inputText>  
                        <p:message for="bairro" id="msgBairro" display="icon"/>

                        <h:outputLabel for="cep" value="CEP: *" />  
                        <p:inputMask id="cep" value="#{escolaController.escola.cep}" mask="99.999-999" required="true" label="CEP">  
                            <f:validateLength minimum="2" />  
                            <p:ajax update="msgCep" event="keyup" />
                        </p:inputMask>  
                        <p:message for="cep" id="msgCep" display="icon"/>

                        <h:outputLabel for="complemento" value="Complemento: " />  
                        <p:inputText id="complemento" value="#{escolaController.escola.complemento}" label="Complemento">
                            <f:validateLength minimum="0" />  
                        </p:inputText>
                        <p:message for="complemento" display="icon"/>

                        <h:outputLabel for="cidade" value="Cidade: *" />  
                        <p:inputText id="cidade" value="#{escolaController.escola.cidade}" required="true" label="Cidade">  
                            <f:validateLength minimum="2" />  
                            <p:ajax update="msgCidade" event="keyup" />
                        </p:inputText>  
                        <p:message for="cidade" id="msgCidade" display="icon"/>

                        <h:outputLabel for="user" value="Usuário: *" />
                        <p:selectOneMenu id="user" value="#{escolaController.escola.usuario.id}" required="true" label="Usuário">
                            <f:selectItems value="#{escolaController.usuarios}"/>
                            <f:validateLength minimum="1" />  
                            <p:ajax update="msgUser" event="keyup" />
                        </p:selectOneMenu>
                        <p:message for="user" id="msgUser" display="icon"/>

                    </h:panelGrid>
                    <p:commandButton id="btAlterar" value="Alterar" update=":growl"  actionListener="#{escolaController.alterar}" oncomplete="handleLoginRequest(xhr, status, args)" ajax="false" immediate="false" />
                </h:form>
            </p:dialog>

            <!--Data Table Escolas -->
            <h:form id="form"> 
                
                    <h:outputLabel for="escola" value="Escola" />
                    <p:inputText size="50" id="nome" value="#{escolaController.escola.nome}" /> 
                    <p:commandButton value="Buscar" action="#{escolaController.produtosCat}" update="dataTable"  />

               
                <p:dataTable id="dataTable" var="escola" value="#{escolaController.todasEscolas}"  
                             paginator="true" rows="10"  
                             paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"  
                             rowsPerPageTemplate="5,10,15">  
                    <f:facet name="header">  
                        Escolas Cadastrados 
                    </f:facet>  

                    <p:column>  
                        <f:facet name="header">  
                            <h:outputText value="Código" />  
                        </f:facet>  
                        <h:outputText value="#{escola.id}" />  
                    </p:column>  

                    <p:column>  
                        <f:facet name="header">  
                            <h:outputText value="Código Inep" />  
                        </f:facet>  
                        <h:outputText value="#{escola.codigo_inep}" />  
                    </p:column>

                    <p:column filterStyle="max-width: 40px; min-width: 300px;" filterBy="#{escola.nome}">  
                        <f:facet name="header">  
                            <h:outputText value="Escola" />  
                        </f:facet>  
                        <h:outputText value="#{escola.nome}" />  
                    </p:column>

                    <p:column>  
                        <f:facet name="header">  
                            <h:outputText value="Usuário" />  
                        </f:facet>  
                        <h:outputText value="#{escola.usuario.username}" />  
                    </p:column>

                    <p:column>  
                        <f:facet name="header">  
                            <h:outputText value="Alterar" />  
                        </f:facet>
                        <div align="center">
                            <p:commandButton update=":dlgescola" action="#{escolaController.editar}"  oncomplete="altEscola.show()" image="ui-icon ui-icon-pencil" title="Alterar Escola">
                                <f:setPropertyActionListener target="#{escolaController.escola}" value="#{escola}" />
                            </p:commandButton>
                            
                            
                        </div>    
                    </p:column>

                    <p:column>  
                        <f:facet name="header">  
                            <h:outputText value="Excluir" />  
                        </f:facet>
                        <div align="center">
                            <p:commandButton oncomplete="confirmation.show()" image="ui-icon ui-icon-close" title="Excluir">  
                                <f:setPropertyActionListener value="#{escola}" target="#{escolaController.escolaParaEditarExcluir}" />  
                            </p:commandButton>
                        </div>
                    </p:column>
                </p:dataTable>  
            </h:form>
            <h:form>
                <!-- Caixa de dialogo para exclusão-->
                <p:confirmDialog message="Deseja realmente excluir esta Escola?" width="350" header="Confirmação" severity="alert" widgetVar="confirmation">  
                    <p:commandButton value="Sim" update=":form:dataTable" actionListener="#{escolaController.excluir}" oncomplete="confirmation.hide()"/>  
                    <p:commandButton value="Não" onclick="confirmation.hide()" type="button" />  
                </p:confirmDialog>
            </h:form>
        </ui:define>
    </ui:composition>
</h:body>

EscolaController

public class EscolaController {

private Escola escola = new Escola();
private DataModel model;
private Map<String, Object> usuarioList = null;
@Resource
private DaoGenerico<Escola, Integer> escolaDao;
@Resource
private DaoGenerico<Usuario, Integer> usuarioDao;

public EscolaController() {
    this.escola = new Escola();
    this.escola.setUsuario(new Usuario());
}

public Escola getEscola() {
    return escola;
}

public void setEscola(Escola escola) {
    this.escola = escola;
}

public DaoGenerico<Escola, Integer> getEscolaDao() {
    return escolaDao;
}

public void setEscolaDao(DaoGenerico<Escola, Integer> escolaDao) {
    this.escolaDao = escolaDao;
}

public DaoGenerico<Usuario, Integer> getUsuarioDao() {
    return usuarioDao;
}

public void setUsuarioDao(DaoGenerico<Usuario, Integer> usuarioDao) {
    this.usuarioDao = usuarioDao;
}

// preenche o combo com usuarios disponiveis
// no formulário de cadastro de Escola
public Map<String, Object> getUsuarios() {

    usuarioList = new LinkedHashMap<String, Object>();

    for (Iterator<?> iter = usuarioDao.todos().iterator(); iter.hasNext();) {
        Usuario u = (Usuario) iter.next();
        usuarioList.put(u.getUsername(), u.getId());// label,value
    }

    return usuarioList;
}

/**
 * Método chamado dentro do salvar para que seja possivel limpar a caixa de
 * dialog
 */
protected void novo() {
    escola = new Escola();
    this.escola.setUsuario(new Usuario());
}

public String cancelar() {
    novo();
    return "home.xhtml";
}

/**
 * Método que mostra todas as escolas
 *
 * @return -> DataTable de Escolas
 */
public DataModel getTodasEscolas() {
    return model = new ListDataModel(escolaDao.todos());
}

/**
 * Método resposavel por pegar a escola selecionada na tabela
 *
 * @return -> Escola para ser editada ou excluida
 */
public Escola getEscolaParaEditarExcluir() {
    escola = (Escola) model.getRowData();
    return escola;
}

/**
 * Método resposável por salvar
 *
 * @return -> uma nova escola
 */
public String salvar() {

    escolaDao.salvar(escola);
    FacesUtils.mensInfo("Escola " + escola.getNome() + " cadastrada com sucesso ");
    novo();
    return "formEscola.xhtml";

}

/**
 * Método resposável por alterar um usuário
 */
public void alterar(ActionEvent event) {
    RequestContext context = RequestContext.getCurrentInstance();
    boolean loggedIn = false;
    if (escola.getId() != null) {
        Usuario user = usuarioDao.pesquisarPorId(escola.getUsuario().getId());
        escola.setUsuario(user);
        escolaDao.atualizar(escola);
        loggedIn = true;
        FacesUtils.mensInfo("Escola " + escola.getNome() + " alterada com sucesso ");
    } else {
        loggedIn = false;
    }
    context.addCallbackParam("loggedIn", loggedIn);
}

public Escola editar() {
    setEscola(getEscolaParaEditarExcluir());
    return escola;
}

/**
 * Método resposável por excluir uma escola
 */
public String excluir() {
    escola = getEscolaParaEditarExcluir();
    escolaDao.excluir(escola);
    FacesUtils.mensInfo("Escola excluida com sucesso");
    return "home.xhtml";
}

}

e por fim o método dentro da Dao

@SuppressWarnings(“unchecked”)
public List todos() {
String queryS = “SELECT obj FROM " + oClass.getSimpleName() + " obj”;
Query query = getEntityManager().createQuery(queryS);
return query.getResultList();

}

Já tentei de tudo mais não estou conseguindo.

Bom noite pessoal, consegui revolver.

Meu caro,

estou com o mesmo problema. Como você conseguiu resolver?

Abraços…

amigo formate seu codigo. tem exemplos no site do [primefaces voce seguiu[url]? http://www.primefaces.org/showcase-labs/ui/datatableFiltering.jsf

opa, boa tarde!!!

Estou com o mesmo problema aqui. Como você conseguiu resolver?

desde já, obrigado!!

Tem que usar o propertyActionListener.

<p:commandButton title="Alterar"onclick="dialogdados.show()" icon="ui-icon-pencil"> <f:setPropertyActionListener value="#{objeto}" target="#{ObjetoControle.objeto}" /> </p:commandButton>

[quote=ErickRAR]Tem que usar o propertyActionListener.

<p:commandButton title="Alterar"onclick="dialogdados.show()" icon="ui-icon-pencil"> <f:setPropertyActionListener value="#{objeto}" target="#{ObjetoControle.objeto}" /> </p:commandButton>[/quote]

opa, erick…obrigado pela ajuda!

mas não funciona…o meu código está da seguinte forma:[code]
<p:column sortBy = “#{id.fornecedor}” filterBy = “#{id.fornecedor}” id = “fornecedor”>
<f:facet name=“header”>Fornecedor</f:facet>
#{id.fornecedor}
</p:column>

     <p:column>
						<f:facet name="header">Editar</f:facet>	
						<h:commandLink title="Editar">
							<f:ajax execute="@this" render=":edicao"/>
							<h:graphicImage library="imagens" name="edit.png" style="border:0"/>
							<f:setPropertyActionListener target="#{contratoBean.contrato}" value="#{id}"/>
						</h:commandLink>
					</p:column>

[/code]

não utilizo botões nesse código, só link mesmo…no link de editar tenho esse setPropertyAction, mas ao filtrar, dá o mesmo bug…não sei mais o que tentar!!

alguma outra sugestão?!!?

obrigado!!

Estou com o mesmo problema aqui.

Acredito que seja por causa do ajax.O exemplo no primefaces está diferente, dê uma olhada…

Eu costumo utilizar um dialog para cadastrar/alterar, assim, quando clico no botao, ele abre o dialog.

Tente assim:

<p:column sortBy = "#{id.fornecedor}" filterBy = "#{id.fornecedor}" id = "fornecedor">  
    <f:facet name="header">Fornecedor</f:facet>  
    #{id.fornecedor}  
</p:column>  
   <p:column>  
    <f:facet name="header">Editar</f:facet>   
    <h:commandLink title="Editar" onclick="dialogdados.show()">  
        <h:graphicImage library="imagens" name="edit.png" style="border:0"/>  
        <f:setPropertyActionListener target="#{contratoBean.contrato}" value="#{id}"/>  
    </h:commandLink>  
</p:column>  

Conseguiu resolver o problema?

Estava tendo o mesmo problema, só precisa utilizar o filteredValue dentro do seu datatable.

[]'s

estou com esse mesmo problema, alguem consegui o arrumar?

[code]<?xml version='1.0' encoding='UTF-8' ?>

<ui:composition xmlns:ui=“http://java.sun.com/jsf/facelets"
template=”…/template/template_colaborador.xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p=“http://primefaces.org/ui”>

<ui:define name="content">
    <p:fieldset legend="Cadastro de Alunos">

        <h:form id="formAluno">
            <p:growl id="aviso" life="2000" redisplay="true"/>

<p:fieldset>
<p:commandButton update=":cadastro" value=“Novo"
oncomplete=“inserir.show()” action=”#{alunoBean.limpar()}"/>
</p:fieldset>
<p:dataTable id=“tabelaaluno” value="#{alunoBean.alunos}“
var =“v” paginator=“true” paginatorPosition=“bottom” rows=“10” emptyMessage=“Aluno não encontrado!”>
<p:column>
<f:facet name=“header”>
<h:outputText value=“Código” />
</f:facet>
<h:outputText value=”#{v.id}" />
</p:column>
<p:column filterMatchMode=“contains” filterStyle=“width:350px” filterBy="#{v.nome}">
<f:facet name=“header”>

                        <h:outputText value="Nome"/>
                    </f:facet>
                    #{v.nome}
                    <p:commandLink update=":alunosd" oncomplete="alunod.show()" title="Detalhes da Aluno">  
                        <p:graphicImage alt="Detalhes" style="border:none" value="../resources/imagens/search.png"/>   
                        <f:setPropertyActionListener value="#{v}" target="#{alunoBean.aluno}"/>
                    </p:commandLink> 
                </p:column>

                <p:column>
                    <f:facet name="header">
                        <h:outputText value="Ações"/>
                    </f:facet>

                    <p:column>  


                       <!-- Botao Excluir -->
                       <p:commandButton icon="ui-icon-close" value="Excluir" title="Excluir" onclick="confirmation.show()" style="margin-left: 5px" >

                    <!-- Abaixo temos o setPropertyActionListener que é utilizado para pegar o objeto cli e setar no objeto cliente la no nosso bean, para posteriomente excluirmos-->

                    <f:setPropertyActionListener value="#{v}" target="#{alunoBean.aluno}" />

                </p:commandButton>  
                        
                        <!-- Botao Excluir -->
                        


                    </p:column> 

                    <!-- -->
                    ||
                    <p:commandButton value="Alterar" action="#{alunoBean.alterar()}"  image="ui-icon ui-icon-pencil" oncomplete="inserir.show()"
                                     update=":cadastro">
                        <f:setPropertyActionListener value="#{v}" target="#{alunoBean.aluno}"/>
                    </p:commandButton>

                </p:column>

            </p:dataTable>

          

        </h:form>

<h:form id=“dlg”>

        <p:confirmDialog message="Deseja realmente excluir este registro?" header="Aviso" severity="alert" widgetVar="confirmation">

            <!--caso seja sim chamo o metodo excluir, e fecho o modal com o oncomplete, tenho o process que estou dizendo para processar o form, e update para atualizar a tabela-->

            <p:commandButton id="btnSim" value="Sim" oncomplete="confirmation.hide();" actionListener="#{alunoBean.excluir}" process="@form" update=":formAluno" />

            <!--caso seja não somente fecha o modal-->

            <p:commandButton id="btnNao" value="Não" onclick="confirmation.hide();" type="button"/>

        </p:confirmDialog>

    </h:form>
        <!-- Fim Form Confir -->


        <!-- Codigo para mostrar os detalhes INICIO -->
        <p:dialog widgetVar="alunod"
                  header="Detalhes do Aluno" width="420"
                  modal="true">
            <h:form id="alunosd">
                <h:inputHidden value="#{v}"/>


                <h:panelGrid  columns="2">  
                    <h:outputLabel for="nome" value="Nome: " />  
                    <h:outputText id="nome" value="#{alunoBean.aluno.nome}" />  

                    <h:outputLabel for="data_de_nascimento" value="Nascimento: " />  
                    <h:outputText id="data_de_nascimento" value="#{alunoBean.aluno.dataNascimento}"> 
                        <f:convertDateTime pattern="dd/MM/yyyy" />
                    </h:outputText>  

                    <h:outputLabel for="rg" value="RG: " /> 
                    <h:outputText id="rg" value="#{alunoBean.aluno.rg}" />

                    <h:outputLabel for="cpf" value="CPF: " /> 
                    <h:outputText id="cpf" value="#{alunoBean.aluno.cpf}" />

                    <h:outputLabel for="estado" value="Estado: " /> 
                    <h:outputText id="estado" value="#{alunoBean.aluno.estado.nome}" />

                    <h:outputLabel for="cidade" value="Cidade: " />  
                    <h:outputText id="cidade" value="#{alunoBean.aluno.cidade.nome}" />

                    <h:outputLabel for="endereco" value="Endereço: " />  
                    <h:outputText id="endereco" value="#{alunoBean.aluno.endereco}" />

                    <h:outputLabel for="tel" value="Telefone: " /> 
                    <h:outputText id="tel" value="#{alunoBean.aluno.telefoneResidencial}" />

                    <h:outputLabel for="cel" value="Celular: " /> 
                    <h:outputText id="cel" value="#{alunoBean.aluno.telefoneCelular}" />           

                    <h:outputLabel for="email" value="e-Mail: " />  
                    <h:outputText id="email" value="#{alunoBean.aluno.email}" />

                    <h:outputLabel for="sexo" value="Sexo: " />  
                    <h:outputText id="sexo" value="#{alunoBean.aluno.sexo}" />

                    <h:outputLabel for="certidao" value="Certidão de Nascimento: " />  
                    <h:outputText id="certidao" value="#{alunoBean.aluno.certidaoNascimento}" />

                    <h:outputLabel for="responsavel" value="Nome do Responsável: " />  
                    <h:outputText id="responsavel" value="#{alunoBean.aluno.nomeResponsavel}" />

                    <h:outputLabel for="escola" value="Escola: " />  
                    <h:outputText id="escola" value="#{alunoBean.aluno.escola}" />

                    <h:outputLabel for="tipoescola" value="Tipo de Escola: " />  
                    <h:outputText id="tipoescola" value="#{alunoBean.aluno.tipoEscola}" />

                </h:panelGrid>  

            </h:form>
        </p:dialog>

        <p:dialog widgetVar="inserir"
                  header="Inserir Aluno" 
                  modal="true" resizable="false">
            <h:form id="cadastro">
                <h:inputHidden value="#{alunoBean.aluno.id}"/>

                <p:growl id="aviso2" life="2000"/>
                <h:panelGrid columns="3">

                    <h:outputText value="Nome: "/>
                    <p:inputText id="nome"  validatorMessage="Apenas Letras!" required="true" size="50" requiredMessage="Campo Nome Obrigatório" value="#{alunoBean.aluno.nome}">
                     <p:ajax update="nome aviso2 nomem"/>

<f:validateRegex pattern="([A-Za-zÁ-ú ]+)"/>

                    </p:inputText>
                    <p:message id="nomem" for="nome" />

                    <h:outputText value="Certidão de Nascimento: " />  
                    <p:inputText  id="certidao" value="#{alunoBean.aluno.certidaoNascimento}"/>
                    <p:message id="certidaom" for="certidao"/>

                    <h:outputText value="RG: " />
                    <p:inputText  size="7" id="rg" value="#{alunoBean.aluno.rg}"/>
                    <p:message id="rgm" for="rg" display="icon"/>

                    <h:outputText value="Cpf: " />
                    <p:inputMask size="14" required="false" id="cpf" value="#{alunoBean.aluno.cpf}" mask="999.999.999-99">
                        <p:ajax update="cpf aviso2"/>
                       
                    </p:inputMask>
                    <p:message id="cpfm" for="cpf" />

                
            

                    <h:outputText value="Data de Nascimento: " />
                    <p:calendar size="10" mindate="01/01/1900"  yearRange="40" maxdate="01/01/2005" id="data" navigator="true" value="#{alunoBean.aluno.dataNascimento}" pattern="dd/MM/yyyy" locale="pt" />
                    <p:message id="datam" for="data"/>

                    <h:outputText value="Nome do Responsável: " />  
                    <p:inputText  id="responsavel" size="50" value="#{alunoBean.aluno.nomeResponsavel}"/>
                    <p:message id="responsavelm" for="responsavel"/>

                    <h:outputText value="Estado: " />
                    <p:selectOneMenu id="ban" value="#{alunoBean.idEstado}" immediate="true">
                        <f:selectItem itemLabel="Selecione um estado..." itemValue="" /> 
                        <f:selectItems value="#{estadoBean.estados}" var="b"
                                       itemLabel="#{b.nome}" itemValue="#{b.id}" />
                        <p:ajax update="agn"/>
                    </p:selectOneMenu>
                    <p:message id="banm" for="ban"/>

                    <h:outputText value="Cidade: "/>
                    <p:selectOneMenu id="agn" value="#{alunoBean.idCidade}" 
                                     immediate="true" >
                        <f:selectItem itemLabel="Selecione uma cidade..." itemValue="" /> 
                        <f:selectItems value="#{alunoBean.agnEstados}" var="a"
                                       itemLabel="#{a.nome}" itemValue="#{a.id}" />
                    </p:selectOneMenu>

                    <p:message id="agnm" for="agn"/>

                    <h:outputText value="Endereço: " />  
                    <p:inputText  id="endereco"  size="50" value="#{alunoBean.aluno.endereco}"/>
                    <p:message id="enderecom" for="endereco"/>

                    <h:outputText value="Telefone Residencial: " />  
                    <p:inputMask id="telefone" size="14" value="#{alunoBean.aluno.telefoneResidencial}" label="telefone" mask="(99)9999-9999"/>
                    <p:message id="telefonem" for="telefone"/>

                    <h:outputText  value="Telefone Celular: " /> 
                    <p:inputMask id="celular" size="14" value="#{alunoBean.aluno.telefoneCelular}" label="celular" mask="(99)9999-9999"/>
                    <p:message id="celularm" for="celular"/>

                    <h:outputText value="E-mail: " />  
                    <p:inputText id="email" size="50" value="#{alunoBean.aluno.email}" validatorMessage="O e-mail informado não é válido"><p:ajax update="email aviso2 emailm"/>
                        <f:validateRegex pattern="(^[_A-Za-z0-9-]+(\.[_A-Za-z0-9-]+)*@[A-Za-z0-9]+(\.[A-Za-z0-9]+)*(\.[A-Za-z]{2,})$)" /></p:inputText>
                    <p:message id="emailm" for="email"/>

                    <h:outputText value="Sexo: " />  
                    <p:selectOneRadio id="sexo" value="#{alunoBean.aluno.sexo}">  
                        <f:selectItem itemLabel="Masculino" itemValue="Masculino" />  
                        <f:selectItem itemLabel="Feminino" itemValue="Feminino" />  
                    </p:selectOneRadio>
                    <p:message id="sexom" for="sexo"/>

                    <h:outputText value="Escola: " />  
                    <p:inputText id="escola" size="50" value="#{alunoBean.aluno.escola}" />
                    <p:message id="escolam" for="escola" display="icon"/>

                    <h:outputText value="Tipo de Escola: " />  
                    <p:selectOneRadio id="tipoescola" value="#{alunoBean.aluno.tipoEscola}">
                        <f:selectItem itemLabel="Pública" itemValue="Pública" />
                        <f:selectItem itemLabel="Particular" itemValue="Particular" />

                    </p:selectOneRadio> 
                    <p:message id="tipoescolam" for="tipoescola" display="icon"/>


                </h:panelGrid>
                <p:commandButton update=":formAluno:tabelaaluno,aviso2,cadastro" value="Salvar" action="#{alunoBean.salvar}"/>
                <!--<p:commandButton  update="cadastro" value="Limpar" action="#{alunoBean.limpar()}"/>
                --> 
                <p:commandButton immediate="true" value="Cancelar"
                                 oncomplete="inserir.hide()"/>
            </h:form>
        </p:dialog>

    </p:fieldset>

</ui:define>

</ui:composition>
[/code]

como vc fez ?

[quote=leonhard32]Conseguiu resolver o problema?

Estava tendo o mesmo problema, só precisa utilizar o filteredValue dentro do seu datatable.

[]'s[/quote]

assim…

1 - no <p:datatable> vc precisa definir um filteredValue(por exigência da versão do prime que ele está usando - que deve ser a mesma que a minha - dá uma olhada na documentação)

<p:datatable filteredValue="#{fornecedorBean.filtroFornecedor}">

2 - no managedbean vc define esse atributo assim: //criado esse filtro para parar com o erro do filteredValue do jsf
private List filtroFornecedor;

observa que tem o mesmo nome o atributo…só isso…tenta aê e depois responde se deu!!!

como ficaria o managebean ? o codigo da lista ? e do Dao ?

[quote=leonardoteles]assim…

1 - no <p:datatable> vc precisa definir um filteredValue(por exigência da versão do prime que ele está usando - que deve ser a mesma que a minha - dá uma olhada na documentação)

<p:datatable filteredValue="#{fornecedorBean.filtroFornecedor}">

2 - no managedbean vc define esse atributo assim: //criado esse filtro para parar com o erro do filteredValue do jsf
private List filtroFornecedor;

observa que tem o mesmo nome o atributo…só isso…tenta aê e depois responde se deu!!![/quote]

opa manow deu certo sim, obrigado :smiley:

Deu certo mesmo?..que maneiro…vc é o primeiro que consigo ajudar aqui!!!

show de bola!!!

abraço!!

deu certo sim, obrigado :smiley:

[quote=leonardoteles]Deu certo mesmo?..que maneiro…vc é o primeiro que consigo ajudar aqui!!!

show de bola!!!

abraço!![/quote]

comigo não funcionou…ate filtra mais sempre seleciona a primeira linha, alem de não voltar a lista original quando apago os dados do input.

posta o teu codigo ai pra gente ve

então, ele filtra normalmente agora, porem sempre que filtra so pega a primeira linha…to usando o primefaces3.5
no controler, posto o codigo completo?

private List<Operador> filtroOperador;

    public List<Operador> getFiltroOperador() {
        return filtroOperador;
    }

    public void setFiltroOperador(List<Operador> filtroOperador) {
        this.filtroOperador = filtroOperador;
    }

no xhtml:

<p:dataTable id="tabela" var="operador" 
            widgetVar="operadorTable"  value="#{operadorController.listarOperadores}"  
            filteredValue="#{operadorController.filtroOperador}">


<p:commandLink  value="Alterar" 
                        actionListener="#{operadorController.prepararAlterarOperador}"
                        update=":tabela3:infosOperador" oncomplete="dialogGerOperador.show()">
                        </p:commandLink>    

[quote=diogobsb]então, ele filtra normalmente agora, porem sempre que filtra so pega a primeira linha…to usando o primefaces3.5
no controler, posto o codigo completo?

private List<Operador> filtroOperador;

    public List<Operador> getFiltroOperador() {
        return filtroOperador;
    }

    public void setFiltroOperador(List<Operador> filtroOperador) {
        this.filtroOperador = filtroOperador;
    }

no xhtml:

[code]
<p:dataTable id=“tabela” var=“operador"
widgetVar=“operadorTable” value=”#{operadorController.listarOperadores}“
filteredValue=”#{operadorController.filtroOperador}">

<p:commandLink value=“Alterar"
actionListener=”#{operadorController.prepararAlterarOperador}“
update=”:tabela3:infosOperador" oncomplete=“dialogGerOperador.show()”>
</p:commandLink>
[/code][/quote]

amigo ta faltando no seu botao o f:setPropertyActionListener, pode ser por causa disso
veja o meu como ficou: <p:commandButton value="Alterar" action="#{alunoBean.alterar()}" image="ui-icon ui-icon-pencil" oncomplete="inserir.show()" update=":cadastro"> <f:setPropertyActionListener value="#{v}" target="#{alunoBean.aluno}"/> </p:commandButton>