PrimeFaces p:列筛选面没有显示

时间:2014-09-09 12:38:46

标签: primefaces pf-datatable

我有这个PrimeFaces(4.0)表:

<p:dataTable id="datalist" widgetVar="datalist"
             value="#{hoursController.lazy}"
             lazy="true"
             filteredValue="#{hoursController.filteredItems}"
             var="item"
             selectionMode="single" selection="#{hoursController.selected}"
             rowKey="#{item.id}"
             paginator="true" paginatorPosition="bottom"
             rows="10"
             sortBy="workDate" sortOrder="descending">

此列包含filter方面(尝试复制PrimeFaces DataTable filter showcase中的品牌过滤器):

<p:column headerText="#{msg.table_header_hours_emplId}"
          sortBy="#{item.emplId}"
          filterBy="#{item.emplId}" filterMatchMode="exact">
  <f:facet name="filter">
    <p:selectOneMenu onchange="PF('datalist').filter()">
      <f:selectItem itemLabel="" itemValue="#{null}" noSelectionOption="true" />
      <f:selectItems value="#{employeesController.items}" />
    </p:selectOneMenu>
  </f:facet>
  <h:outputText value="#{item.emplId}" />
</p:column>

p:selectOneMenu未显示,而是我只获得纯文本输入过滤器。

我从表中删除了所有类型的属性(例如延迟加载)以查看它们是否导致过滤器不被渲染,但是所有属性都具有相同的结果。

我也确定p:selectOneMenu是正确的;当我把它放在桌子外面时,它选择菜单显示正确的内容。

我还检查了有关filter方面的额外信息的规范,但可以找到任何其他信息。

有人可以说出我做错了吗?

1 个答案:

答案 0 :(得分:2)

显然是the filter facet was added in PrimeFaces 5(所以它在4中不起作用)。文档和展示中没有提到这一点。