この 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">
この列にはファセットが含まれています ( PrimeFaces DataTable フィルター ショーケースfilter
でブランド フィルターを複製しようとしています):
<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
追加情報を見つけることができました。
誰が私が間違っているのか教えてもらえますか?