使用primefaces的日历组件筛选数据表

使用primefaces的日历组件筛选数据表,primefaces,datatable,calendar,jsf-2.2,Primefaces,Datatable,Calendar,Jsf 2.2,我正在使用JSF2.2、Primefaces 6.0,并尝试使用Primefaces的日历组件对数据表进行排序。问题是:当我开始使用特定日期筛选datatable时,datatable的所有值都将消失,而不是显示正确的值 xhtml代码: <p:dataTable value="#{demandeBean.allDemandes}" var="a" id="t1" sortMode="multiple" widgetVar="tt" editabl

我正在使用JSF2.2、Primefaces 6.0,并尝试使用Primefaces的日历组件对数据表进行排序。问题是:当我开始使用特定日期筛选datatable时,datatable的所有值都将消失,而不是显示正确的值

xhtml代码:

 <p:dataTable value="#{demandeBean.allDemandes}" var="a" id="t1"
                    sortMode="multiple" widgetVar="tt" editable="true" editMode="cell"
                    selectionMode="single" rowKey="#{a.id}"
                    emptyMessage="Aucune demande" rows="10" paginator="true"
                    paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
                    rowsPerPageTemplate="10,15,25" draggableColumns="true"
                    scrollable="true" scrollHeight="250" paginatorPosition="bottom">
    <p:ajax event="rowSelect" listener="#{demandeBean.onRowSelect}"
        oncomplete="PF('d2').show()" update=":form:d2" />

    <p:ajax event="cellEdit" listener="#{demandeBean.onCellEdit}"
        update=":form:t1" />

    <p:column headerText="Date dépot" sortBy="#{a.dateDeDepot}" filterBy="#{a.dateDeDepot}" filterMatchMode="contains">
        <f:facet name="filter">
            <p:calendar id="cal1" pattern="dd/MM/yyyy">
                <p:ajax event="dateSelect" oncomplete="PF('tt').filter()" update="t1" />
                <p:ajax event="change" execute="@this" oncomplete="PF('tt').filter()" update="t1" />
            </p:calendar>
        </f:facet>
        <h:outputText value="#{a.dateDeDepot}">
            <f:convertDateTime pattern="dd/MM/yyyy HH:mm:ss"
                timeZone="GMT+1:00" />
        </h:outputText>
    </p:column>

下面是javaBean代码:

@ManagedBean
@ViewScoped
public class DemandeBean {
    private List<String> images = new ArrayList<>();
    private String matriculeForAdminToAdd;
    private List<DetailDemande> detailDemandesTMP = new ArrayList<>();
    private ActeMedical acteMedical = new ActeMedical();
    private List<ActeMedical> acteMedicalsToAdd = new ArrayList<>();
    private Integer idOf;
    private List<Demande> allDemandes = new ArrayList<>();
    private List<Demande> allDemandesParAssures = new ArrayList<>();
    private List<Demande> allDemandesParEmployer = new ArrayList<>();
    private Demande demande = new Demande();
    private Demande demandeSelectionnee = new Demande();
    private List<String> etats = new ArrayList<>();
    private List<String> etatsDemande = new ArrayList<>();
    private String etatChoisi = "";
    private Date dateActe;
    private Double montant;
    private ActeMedical acteMedicalSelection = new ActeMedical();
    private List<ActeMedical> acteMedicals = new ArrayList<>();
    private List<Assure> assuresParEmployee = new ArrayList<>();
    private Map<String, String> parentes = new HashMap<String, String>();
    private int sizeDemands;
    private int sizeDemandsCollaborateur;
    private int sizeDemandsAssure;
    @EJB
    private DemandeServicesLocal demandeServicesLocal;
    @EJB
    private UserServicesLocal userServicesLocal;
    @ManagedProperty(value = "#{identity}")
    private Identity identity;
    @ManagedProperty(value = "#{demandeTMP}")
    private DemandeTMP demandeTMP;

    @PostConstruct
    public void init() {
        etats.add("ENCOURS");
        etats.add("ACCEPTE");
        etats.add("AMODIFIER");
        parentes = new HashMap<String, String>();
        parentes.put("Enfant", "Enfant");
        parentes.put("Conjoint", "Conjoint");
        etatsDemande.add("ENCOURS");
        etatsDemande.add("TRANSMISE");
        etatsDemande.add("AMODIFIER");

    }





    public List<Demande> getAllDemandes() {
        allDemandes = demandeServicesLocal.findAllDemandes();
        sizeDemands = allDemandes.size();
        Collections.sort(allDemandes, new Comparator<Demande>() {
            @Override
            public int compare(Demande d1, Demande d2) {
                return d2.getDateDeDepot().compareTo(d1.getDateDeDepot());
            }
        });
        return allDemandes;

    }
@ManagedBean
@视域
公共类DemandeBean{
私有列表图像=新的ArrayList();
AdminToAdd的私有字符串矩阵;
private List detailDemandesTMP=new ArrayList();
private ActeMedical ActeMedical=新ActeMedical();
private List ActeMedicalLoadd=新建ArrayList();
私有整数idOf;
private List allDemandes=new ArrayList();
私有列表AllDemanDesparAssure=new ArrayList();
private List allDemandesParEmployer=new ArrayList();
私有需求方=新需求方();
私有需方demandecelionnee=新需方();
私有列表etats=newarraylist();
private List etatsDemande=new ArrayList();
私有字符串etatChoisi=“”;
私人约会日期;
私人双重蒙塔特;
私人ActeMedical acteMedicalSelection=新ActeMedical();
private List ActeMedical=new ArrayList();
private List=new ArrayList();
私有映射父项=新HashMap();
私人内部规模需求;
私人住宅和私人住宅;
私有int-sizedemandsure;
@EJB
私人需求设备本地需求设备本地;
@EJB
私有用户服务本地用户服务本地;
@ManagedProperty(value=“#{identity}”)
私人身份;
@ManagedProperty(value=“#{demandeTMP}”)
私人需求;
@施工后
公共void init(){
添加(“安可”);
添加(“接受”);
添加附件(“修改器”);
parentes=newhashmap();
父母。put(“儿童”、“儿童”);
父母。put(“联合”、“联合”);
添加(“ENCOURS”);
添加(“传输”);
添加(“修改器”);
}
公共列表getAllDemandes(){
allDemandes=DemanDeserDevicesLocal.findAllDemandes();
sizeDemands=allDemandes.size();
Collections.sort(allDemandes,新的Comparator(){
@凌驾
公共整数比较(需方d1、需方d2){
返回d2.getDateDeDepot().compareTo(d1.getDateDeDepot());
}
});
返回所有需求;
}

你能做一个吗?在不久的将来,我可能需要同样的功能,我想帮助你分享bean codes@ÖmerFarukKurt:bean code是一个的一部分。因此,要求这样做总是更好的。谢谢你的编辑,但这不是一个很好的选择!