在p:dataTable中为selectOneMenu设置初始过滤器值

时间:2019-07-24 11:13:55

标签: filter primefaces datatable onselect

我有一个数据表,其中属性之一是字段Vigente。 Vigente是一个可能值为``是''或``否''的枚举。

在数据表中实现一个类型为oneSelectMenu的过滤器列,其中可能的值为All(默认为第一个声明的值),是和否。

有没有办法使默认值成为oneSelectMenu的第三个元素,在这种情况下,是吗?

枚举代码

public enum EnumVigente {
    NO("No"),
    YES("Yes");

   private final String descricao;

    private EnumVigente(String descricao) {
        this.descricao = descricao;
    }

    public String getDescricao() {
        return descricao;
    }
}

bean代码

O bean dele é

@RequestScoped
@ManagedBean
public class EnumVigenteBean implements Serializable {

    public EnumVigente[] getEnumVigentes() {
        return EnumVigente.values();
    }

    public EnumVigente getEnumSim() {
        return EnumVigente.SIM;
    }

    public EnumVigente getEnumNao() {
        return EnumVigente.NAO;
    }
}

xhtml代码

<html  xmlns="http://www.w3.org/1999/xhtml"
       xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
       xmlns:h="http://xmlns.jcp.org/jsf/html"
       xmlns:f="http://xmlns.jcp.org/jsf/core"
       xmlns:p="http://primefaces.org/ui">

    <ui:composition template="/template.xhtml">

        <ui:define name="conteudo"  >
            <h:form id="PaisListForm"     
                    >
                <p:dataTable id="tblPaises" value="#{paisBean.listaPais}" var="item"
                             selectionMode="single" selection="#{paisBean.pais}"
                             paginator="true"
                             paginatorPosition="bottom"
                             rowKey="#{item.id}"
                             rows="10"
                             rowsPerPageTemplate="10,20,30,40,50"
                             widgetVar="tabelaPais"
                             >
                    <f:facet name="header">
                        #{mensagem.listaPais}
                    </f:facet>
                    <p:ajax event="rowSelect"   update="createButton viewButton editButton" />

                    <p:column sortBy="#{item.name}" filterBy="#{item.name}" filterMatchMode="contains">
                        <f:facet name="header">
                            <h:outputText value="#{mensagem.name}" />
                        </f:facet>
                        <h:outputText value="#{item.name}"/>
                    </p:column>

                    <p:column filterBy="#{item.vigente}" 
                              headerText="#{mensagem.vigente}" 
                              filterMatchMode="exact"
                              >
                        <f:facet name="filter">
                            <p:selectOneMenu id="selVigente" onchange="PF('tabelaPais').filter()"  >
                                <f:selectItem itemLabel="All"
                                              noSelectionOption="true" />
                                <f:selectItems value="#{enumVigenteBean.enumVigentes}" />
                            </p:selectOneMenu>

                        </f:facet>
                        <h:outputText value="#{item.vigente}"/>
                    </p:column>                  

                    <f:facet name="footer">
                        <p:commandButton id="createButton"  actionListener="#{paisBean.prepareCreate()}" icon="ui-icon-plus"   value="#{mensagem.incluir}"  action="/pais/create.xhtml" disabled="#{!perfilUsuarioTagAcessoBean.verificarPermissaoAcesso(permissoes.PAIS_CREATE)}"/>
                        <p:commandButton id="editButton"    icon="ui-icon-pencil" value="#{mensagem.alterar}" action="/pais/update.xhtml" disabled="#{(empty paisBean.pais) || (!perfilUsuarioTagAcessoBean.verificarPermissaoAcesso(permissoes.PAIS_UPDATE))}"/>
                        <p:commandButton id="viewButton"   icon="ui-icon-search" value="#{mensagem.consultar}" update=":PaisViewForm" oncomplete="PF('PaisViewDialog').show()" disabled="#{empty paisBean.pais}"/>
                    </f:facet>
                </p:dataTable>
                <h:commandLink>
                    <p:graphicImage library="imagens" name="excel.png" />
                    <p:dataExporter type="xls" target="tblPaises" fileName="tabelaPais" pageOnly="true"/>
                </h:commandLink>

                <h:commandLink>
                    <p:graphicImage library="imagens" name="pdf.png" />
                    <p:dataExporter type="pdf" target="tblPaises" fileName="tabelaPais" pageOnly="true" />
                </h:commandLink>

            </h:form>

            <ui:include src="view.xhtml"/>
        </ui:define>
    </ui:composition>

</html>

我需要oneSelectMenu id =“ selVigente”才能具有初始值是

0 个答案:

没有答案
相关问题