我有这个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
方面的额外信息的规范,但可以找到任何其他信息。
有人可以说出我做错了吗?