Primefaces数据表过滤模式不起作用

时间:2015-11-11 11:18:34

标签: java primefaces

以下是我的问题: 我有一段简单的代码。 Primeface数据表保存记录并应过滤。但是当我将一些字母写入搜索字段时,数据表会显示“找不到记录”消息。为什么呢?

这是我的代码:

<ui:define name="content">
<h:form>
    <h:panelGrid columns="1">       
        <p:dataTable value="#{mainBean.liste}" 
            var="daten" 
            rows="6" 
            emptyMessage="Keine Daten bisher Erfasst" 
            widgetVar="erfasstTabelle"
            paginator="true" resizableColumns="true" paginatorPosition="bottom"
            paginatorTemplate=" {CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown} Springe zu Seite: {JumpToPageDropdown}"
            currentPageReportTemplate="{startRecord} - {endRecord} von {totalRecords}, Seite: {currentPage}/{totalPages})"
            rowsPerPageTemplate="5,10,15" filteredValue="#{mainBean.gefiltert}">
            <f:facet name="header">
                <p:outputPanel>
                    <h:outputText value="Alle Felder durchsuchen" />
                    <p:inputText id="globalFilter" onkeyup="PF('erfasstTabelle').filter()" style="width:150px" placeholder="Suchbegriff"/>
                </p:outputPanel>
            </f:facet>
            <p:column headerText="AVS ID" filterMatchMode="equals" filterBy="#{daten.nummer}">
                <h:outputText value="#{daten.nummer}" />
            </p:column>
            <p:column headerText="Rechtsform">
                <h:outputText value="#{daten.rechtsform}" />
            </p:column>
            <p:column headerText="Erfasser" filterMatchMode="exact" filterBy="#{daten.erfasser}">   
            <f:facet name="filter">
             <p:selectOneMenu onchange="PF('erfasstTabelle').filter()" >
                <f:selectItem itemLabel="Erfasser" itemValue="#{null}" noSelectionOption="true" />
                <f:selectItems value="#{mainBean.erfasser}" />
                </p:selectOneMenu>
            </f:facet>          
                <h:outputText value="#{daten.erfasser}" />
            </p:column>
            <p:column headerText="Datum" >
                <h:outputText value="#{daten.datum}" />
            </p:column>
        </p:dataTable>          
    </h:panelGrid>
    </h:form>
</ui:define>

我的Bean代码:

package de.avs.beans;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;

import de.avs.entity.Erfasst;
import de.avs.entity.ErfasstDAO;

@ManagedBean
@ViewScoped
public class MainBean implements Serializable{


private static final long serialVersionUID = 1L;
private ErfasstDAO erfasstDAO;  
private List<Erfasst> liste;
private List<Erfasst> gefiltert;
private List<String> erfasser;


@PostConstruct
private void init(){

    erfasstDAO = new ErfasstDAO();

    erfasser = new ArrayList<>();
    erfasser.add("Benjamin");
    erfasser.add("Uwe");
    erfasser.add("Rolf");

    liste = erfasstDAO.alleEintraege();

}


public List<Erfasst> getListe() {
    return liste;
}


public List<Erfasst> getGefiltert() {
    return gefiltert;
}

public void setGefiltert(List<Erfasst> gefiltert) {
    this.gefiltert = gefiltert;
}

public List<String> getErfasser() {
    return erfasser;
}

public void setErfasser(List<String> erfasser) {
    this.erfasser = erfasser;
}

}

0 个答案:

没有答案