繁体   English   中英

过滤素数数据表?

[英]Filtering a primefaces datatable?

我正在尝试为一个dataTable创建一个过滤器。 我希望该过滤器可以与数据表中包含的所有关键字一起使用。

我正在以下示例中: http : //www.primefaces.org/showcase/ui/data/datatable/filter.xhtml,但我无法做到这一点。

问题是当我用任何关键字输入时,dataTable都清晰可见,显示消息“未找到关键字”,如果我删除关键字,所有结果都不会返回,并且消息“未找到关键字”保持不变。

我怎么解决这个问题 ?

这是我的尝试。

XHTML

<p:dataTable id="tabelaAlunos" widgetVar="tableAlunos"
                                        value="#{alunoMB.alunos}" var="x"                                       
                                        emptyMessage="No keyword found"                                     
                                        selectionMode="single"
                                        selection="#{matriculaMB.aluno}"
                                        rowKey="#{x.id}"
                                        filteredValue="#{alunoMB.alunos}"                                                                          
                                        >   
                        <f:facet name="header">
                            <p:outputPanel>
                                <h:outputText value="Filtrar: " />
                                    <p:inputText id="globalFilter"
                                                 onkeyup="PF('tableAlunos').filter()"                                                                                                 
                                                 style="width:150px" placeholder="Filtro"/>
                            </p:outputPanel>
                        </f:facet>  

                        <p:column headerText="Nome">
                                <h:outputText value="#{x.nome}"/>
                        </p:column>
                        <p:column headerText="Sobrenome">
                                <h:outputText value="#{x.sobreNome}"/>
                        </p:column>
                        <p:column headerText="Endereço">
                                <h:outputText value="#{x.endereco.endereco}"/>
                        </p:column>
                        <p:column headerText="Número">
                                <h:outputText value="#{x.endereco.numero}"/>
                        </p:column>
                        <p:column headerText="Cidade">
                                <h:outputText value="#{x.endereco.cidade}"/>
                        </p:column>
                        <p:column headerText="Bairro">
                                <h:outputText value="#{x.endereco.bairro}"/>
                        </p:column>
                        <p:column headerText="Unidade escolar">
                                <h:outputText value="#{x.unidadeEscolar.nome}"/>
                        </p:column>
                </p:dataTable>

托管豆阿鲁诺

@ManagedBean
@ViewScoped
public class AlunoMB implements Serializable{   
    private static final long serialVersionUID = 1L;

    private Aluno bean;
    private GenericDAO<Aluno> dao;
    private List<Aluno> alunos = null;
    private String[] sexo = {"M", "F"};
    private String telefone = "";

    /** persiste o objeto */
    public void insert(Aluno a){        
        dao = new GenericDAO<Aluno>(Aluno.class);
        dao.insert(a);
        alunos.add(a);
        bean = new Aluno();

        FacesContext context = FacesContext.getCurrentInstance();        
        context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "Sucesso" ,"Cadastro realizado com sucesso!"));       
    }

    /** altera o objeto */
    public void update(Aluno a){
        dao = new GenericDAO<Aluno>(Aluno.class);
        dao.update(a);      
    }

    /** prepara para inserir o objeto */
    public void prepareCreate(){
        bean = new Aluno();     
    }

    /** retorna o objeto */
    public Aluno getBean() {
        return bean;
    }

    /** define o objeto */
    public void setBean(Aluno bean) {
        this.bean = bean;
    }


    /** retorna uma lista do objeto */
    public List<Aluno> getAlunos() {        
        if(alunos == null){
            dao = new GenericDAO<Aluno>(Aluno.class);
            alunos = dao.findAll();
        }
        return alunos;
    }

    /** seta uma lista do objeto */
    public void setAlunos(List<Aluno> alunos) {
        this.alunos = alunos;
    }

托管豆基质

 @ManagedBean
@ViewScoped
public class MatriculaMB implements Serializable{   
    private static final long serialVersionUID = 1L;

    private Matricula bean = new Matricula();
    private GenericDAO<Matricula> dao;
    private List<Matricula> matriculas = null;  
    private Turma turma;
    private Aluno aluno = null;


    /** persiste um novo objeto */
    public void insert(Matricula m){        
        dao = new GenericDAO<Matricula>(Matricula.class);
        dao.insert(m);
        matriculas.add(m);
        bean = new Matricula();

        FacesContext context = FacesContext.getCurrentInstance();        
        context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "Sucesso" ,"Cadastro realizado com sucesso!"));       
    }

    /** altera o objeto existente */
    public void update(Matricula m){
        dao = new GenericDAO<Matricula>(Matricula.class);
        dao.update(m);      
    }

    /** prepara para inserir uma nova matricula */
    public void prepareCreate(){
        bean = new Matricula();     
    }

    /** retorna o objeto */
    public Matricula getBean() {
        return bean;
    }

    /** define o objeto */
    public void setBean(Matricula bean) {
        this.bean = bean;       
    }


    /** retorna uma lista do objeto */
    public List<Matricula> getMatriculas() {
        dao = new GenericDAO<Matricula>(Matricula.class);
        if(matriculas == null){
            matriculas = dao.findAll();
        }
        return matriculas;
    }



    public Turma getTurma() {
        return turma;
    }

    public void setTurma(Turma turma) {         
        this.turma = turma;     
    }

    /** adiciona turma ao aluno */
    public void addTurmaAluno(){
        if(!bean.getAluno().getTurmas().contains(turma)){           
            bean.getAluno().addTurmas(this.turma);      
        }           
    }


    public Aluno getAluno() {
        return aluno;
    }

    public void setAluno(Aluno aluno) {
        this.aluno = aluno;
        bean.setAluno(this.aluno);
    }

只需为每列添加一个filteBy。

<p:column headerText="Nome" filterBy="#{x.nome}">
    <h:outputText value="#{x.nome}"/>
</p:column>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM