使用下拉列表primefaces数据表过滤

yah*_*ahh 2 datatable jsf primefaces

jsf 2.0 素面 5.1 玻璃鱼 4

我正在通过下拉列表使用过滤,当我单击列表中的一个项目时,数据表会被过滤,但下拉列表中的值仍然显示“选择一个”而不是选定的值

<p:column headerText="Region" filterBy="#{wan.Region}"
            filterMatchMode="contains" >
      <f:facet name="filter">
          <p:selectOneMenu onchange="PF('table').filter()">
                <f:selectItem itemLabel="Select One" itemValue="#{null}"
                              noSelectionOption="true" />
                <f:selectItems value="#{wandbBean.regions}" />
          </p:selectOneMenu>
      </f:facet>
      <h:outputText value="#{wan.Region}" />
</p:column>
Run Code Online (Sandbox Code Playgroud)

wit*_*arn 5

出现问题是因为您没有设置value="#{wan.Region}"<p:selectOneMenu onchange="PF('table').filter()">.

因此,确切的代码应该是

<p:column headerText="Region" filterBy="#{wan.Region}"
            filterMatchMode="contains" >
      <f:facet name="filter">
          <p:selectOneMenu value="#{wan.Region}" onchange="PF('table').filter()">
                <f:selectItem itemLabel="Select One" itemValue="#{null}"
                              noSelectionOption="true" />
                <f:selectItems value="#{wandbBean.regions}" />
          </p:selectOneMenu>
      </f:facet>
      <h:outputText value="#{wan.Region}" />
</p:column>
Run Code Online (Sandbox Code Playgroud)