Galera, estou com um problema. Tenho um Datatable que possui botões Editar e Excluir que funcionam perfeitamente. Porém quando filtro alguma coisa no FilterBy da Datatable ele não passa mais o objeto para o Bean. Alguém já passou por esse problema ?
posta seu bean e o codigo da pagina
Datatable:
<p:dataTable id="dtTipoDocumentos"
emptyMessage="Nenhum registro encontrado."
value="#{tipodocumentoBean.listTipoDocumento}" var="t"
style="text-align: center; font-size: 12px;" paginator="true"
rows="10"
paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
rowsPerPageTemplate="10,20,50">
<f:facet name="header">
<h:outputText value="Registro de Tipo Documentos" />
</f:facet>
<p:column filterBy="#{t.nome}" filterMatchMode="contains">
<f:facet name="header">
<h:outputText value="Nome" />
</f:facet>
<h:outputText value="#{t.nome}" />
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Departamento" />
</f:facet>
<h:outputText value="#{t.departamento.nome}" />
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Ações" />
</f:facet>
<h:commandLink>
<h:graphicImage title="Editar" url="images/edite.png"
value="Editar" height="16px" width="16px" />
<p:ajax event="click"
listener="#{tipodocumentoBean.preparaEditar(t)}" update="@form" />
</h:commandLink>
<t></t>
<p:commandLink action="#{tipodocumentoBean.setTipoDocumento(t)}"
onclick="confirm.show()" immediate="true">
<h:graphicImage url="images/delete.png" value="Excluir" alt="Excluir"
title="Excluir" style="border: none" height="16px"
width="16px" />
</p:commandLink>
</p:column>
<f:facet name="footer">
<h:outputText
value="Há um total de #{tipodocumentoBean.count} Tipo Documento(s) cadastrado(s) no sistema." />
</f:facet>
</p:dataTable>
Bean:
@ManagedBean(name = "tipodocumentoBean")
@ViewScoped
public class TipoDocumentoBean implements Serializable{
private static final long serialVersionUID = 1L;
private TipoDocumento tipoDocumento;
private List<TipoDocumento> listTipoDocumento;
private Long departamentoID;
private Logger logger = Logger.getLogger(TipoDocumentoBean.class);
@PostConstruct
public void inicia(){
tipoDocumento = new TipoDocumento();
listTipoDocumento = getListTipoDocumento();
}
public List<TipoDocumento> getListTipoDocumento() {
if (this.listTipoDocumento == null) {
TipoDocumentoDao tipoDocumentoDao = new TipoDocumentoDao(this.getManager());
this.listTipoDocumento = tipoDocumentoDao.getTipoDocumentos();
}
return this.listTipoDocumento;
}
public String preparaEditar(TipoDocumento tipoDocumento) {
this.setTipoDocumento(tipoDocumento);
this.setDepartamentoID(this.getTipoDocumento().getDepartamento().getId_departamento());
return "index?faces-redirect=true";
}
public TipoDocumento getTipoDocumento() {
return tipoDocumento;
}
public void setTipoDocumento(TipoDocumento tipoDocumento) {
this.tipoDocumento = tipoDocumento;
}
OBS: Coloquei só as partes importantes, porque se renderizar o objto na página o resto funciona direitinho. Então deve-se passar como parâmetro o objeto tipodocumento no método preparaEditar(), isso que não está indo. Lembrando que funciona quando nao se coloca nada no FilterBy
adiciona a rowkey e aponta para o id do objeto no data table
Utilizo o Primefaces 2.2.1 e não tem esse atributo na Datatable. Antes que pergunte porque não atualizo, é porque não tenho tempo, entregarei o TCC daqui 2 semanas. Não tinha conhecimento do Primefaces, então acabei utilizando essa versão por descuido. Há alguma outra forma ?
o seus objetos TipoDocumento implementaram Serializable ?
Cara sinceramente! Obrigadão! Que burrice a minha, acredite, estava a 2 semanas tentando fazer de tudo e nada de funcionar. Você deu a luz de Deus para mim 
Estava estranhando, só a tela de Usuário funcionava, menos as outras, todas elas estavam sem implementar o Serializable :S
cara normal geralmente quando algo não funciona é algum detalhe que não vimos.
Se vc usar a versão mais nova o primefaces pode ser configurado para usar a rowkey ao invés do serializable.
boa sorte ai.
Sim, neste projeto não atualizarei, mas os próximos projetos que virão utilizarei versões novas. Obrigado pela dica!