Filterby Primefaces

8 respostas
Luciano_Lopes

Galera, alguem sabe como usar o filterby do prime?Tentei usar o código do demo do site, ele filtra direitinho mas na hora que eu clico em algum registros ele me retornam null

8 Respostas

luxu

segui o exemplo do site e aki funciona q é uma maravilha!!!

Hebert_Coelho

Seu ManagedBean está como Session?

luxu

@viewscope

Luciano_Lopes

Não deu certo,os valores continuam a retornar null quando eu seleciono

fabiozanardi

Cola seu managed bean e o arquivo jsf aqui, fica + facil para ajudar

flw!

Luciano_Lopes

Bean:

@ManagedBean
@SessionScoped
public class CategoriasBean {
    
    private Categorias categoria=new Categorias();
    private List<Categorias> categorias;
    
    public void novo(){
        categoria=new Categorias();
    }
    
    public void inserir()throws Exception{
        categoria=new Categorias();
        CategoriasDAO categoriasdao=new CategoriasDAO();
        String retorno=categoriasdao.inserir(categoria);
        FacesContext mensagem=FacesContext.getCurrentInstance();
        if (retorno.equals("sucesso")){
            mensagem.addMessage(null,new FacesMessage(FacesMessage.SEVERITY_INFO,"Cadastro salvo com sucesso!",null));
        }
        else{
            mensagem.addMessage(null,new FacesMessage(FacesMessage.SEVERITY_ERROR,"Erro ao salvar!",null));            
        }
    }
    
    public void selecionar(Long codigo){
        CategoriasDAO categoriadao=new CategoriasDAO();
        categoria=categoriadao.selecionar(codigo);
    }
    
    public void alterar(){
        CategoriasDAO categoriasdao=new CategoriasDAO();
        String retorno=categoriasdao.alterar(categoria);
        FacesContext mensagem=FacesContext.getCurrentInstance();
        if(retorno.equals("sucesso")){
           mensagem.addMessage(null,new FacesMessage(FacesMessage.SEVERITY_INFO,"Cadastro salvo com sucesso!",null));
        }
        else{
            mensagem.addMessage(null,new FacesMessage(FacesMessage.SEVERITY_ERROR,"Erro ao salvar!",null));                      
        }
    }
    
    public void remover(){
        CategoriasDAO categoriasdao=new CategoriasDAO();
        String retorno=categoriasdao.remover(categoria.getCodigo_interno());
        FacesContext mensagem=FacesContext.getCurrentInstance();
        if(retorno.equals("sucesso")){
           mensagem.addMessage(null,new FacesMessage(FacesMessage.SEVERITY_INFO,"Cadastro excluido com sucesso!",null));
        }
        else{
            mensagem.addMessage(null,new FacesMessage(FacesMessage.SEVERITY_ERROR,"Erro ao excluir!",null));                      
        }        
    }
    
    public Categorias getCategoria(){
        return categoria;
    }
    
    public void setCategoria(Categorias categoria){
        this.categoria=categoria;
    }
    
    public List<Categorias> getCategorias(){
        CategoriasDAO categoriasdao=new CategoriasDAO();
        categorias=categoriasdao.listar();
        return categorias;
    }
    
    public void setCategorias(List<Categorias> categorias){
        this.categorias=categorias;
    }

datatable:

<h:form id="formcategorias">		
            <p:dataTable value="#{categoriasBean.categorias}" var="c"
			paginator="true" rows="50" emptyMessage="Nenhuma categoria cadastrada!" selectionMode="single" paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
                        rowsPerPageTemplate="50,100,150" selection="#{categoriasBean.categoria}">
		            <f:facet name="header">  
                            Categorias           
                            </f:facet>	
                    <p:column>
                            <f:facet name="header">
                                    <h:outputText value="Codigo" />
                            </f:facet>
                            <h:outputText value="#{c.codigo_interno}" />
                    </p:column>
                <p:column>
				<f:facet name="header">
					<h:outputText value="Nome" />
				</f:facet>
				<h:outputText value="#{c.nome}" />
	            </p:column>
		</p:dataTable>
            <br/>
            <p:commandButton image="ui-icon ui-icon-document" value="Novo" actionListener="#{categoriasBean.inserir}" oncomplete="alterar.show()" update="formAlterar"/>
            <p:commandButton image="ui-icon ui-icon-pencil" value="Editar" oncomplete="alterar.show()" update="formAlterar"/>
	</h:form>
luxu

kra dá uma olhada no meu datatable, axo q vc tá confundindo algo:

<?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">

<ui:composition xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns="http://www.w3.org/1999/xhtml"
	xmlns:p="http://primefaces.prime.com.tr/ui"
	template="../formularios/template.xhtml"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:h="http://java.sun.com/jsf/html">

	<ui:define name="conteudo">
		<p:layoutUnit position="center" header="Cidade">
			<h:form id="formPrincipal">
				<p:panel style="width:470px">
					<p:growl id="growl" showDetail="true" />
					<h:panelGrid columns="2" id="segundoPanel">
						<p:fieldset legend="Descrição"
							style="font-size:12px; width: 250px;">
							<p:inputText id="cidade-descricao" required="true"
								requiredMessage="Campo [Descrição] obrigatório"
								value="#{cidadeBean.cidade.descricao}" size="30" maxlength="30"/>
						</p:fieldset>

						<p:fieldset legend="Estado" style="font-size:12px;">
							<h:selectOneMenu id="selectEstado"
								value="#{cidadeBean.cidade.estado}">
								<f:selectItems value="#{entradaCidadesBBean.UF}" />
							</h:selectOneMenu>
						</p:fieldset>

					</h:panelGrid>
				</p:panel>
				<p:commandButton id="btCadastrar" value="Cadastrar"
					actionListener="#{cidadeBean.salvar}"
					update="formTabela,formPrincipal" image="ui-icon-disk"
					rendered="#{cidadeBean.cidade.descricao == null}" />
				<p:commandButton id="btAlterar" value="Atualizar"
					actionListener="#{cidadeBean.atualizar}"
					update="formTabela,formPrincipal" image="ui-icon-disk"
					rendered="#{cidadeBean.cidade.descricao != null}" />
				<p:commandButton id="btNovo" value="Novo"
					actionListener="#{cidadeBean.novo}" update="formPrincipal"
					image="ui-icon-disk"
					rendered="#{cidadeBean.cidade.descricao != null}" />
			</h:form>
			<h:form id="formTabela">
				<p:dataTable id="tabela" var="cidades" scrollable="true"
					height="100" binding="#{cidadeBean.tabela}"
					value="#{entradaCidadesBBean.cidades}" emptyMessage="sem registros" style="font-size:12px;" >
					
					<p:column headerText="Descrição" footerText="Descrição"
						style="width:200px"
						filterMatchMode="contains" filterBy="#{cidades.descricao}">
						<h:outputText value="#{cidades.descricao}" />
					</p:column>
					
					<p:column headerText="Estado" footerText="Estado"
						style="width:50px"
						filterMatchMode="contains" filterBy="#{cidades.estado}">
						<h:outputText value="#{cidades.estado}" />
					</p:column>
					
					<p:column style="width:100px">
						<p:commandButton image="ui-icon-pencil" title="Alterar" action="#{cidadeBean.alterar}" update="formPrincipal" />
			    		<p:commandButton image="ui-icon-trash" title="Remover" oncomplete="confirmdlg.show()" />
		    			<p:confirmDialog message="Excluir?" header="Confirmar - #{cidades.descricao}" severity="alert" widgetVar="confirmdlg">
			                <p:commandButton value="Cancelar" update="formTabela" onclick="confirmdlg.hide()" />
			                <p:commandButton value="Confirmar" update="formTabela" action="#{cidadeBean.excluir}"/>
			    		</p:confirmDialog> 
					</p:column>
				</p:dataTable>
            </h:form>
		</p:layoutUnit>
	</ui:define>
</ui:composition>
Luciano_Lopes

Pessoal, ja to desistindo ja tendei de tudo mas os valores sempre retornam null, existe outra maneira de fazer consulta numa datatable?

Criado 12 de dezembro de 2011
Ultima resposta 14 de dez. de 2011
Respostas 8
Participantes 4