1

この 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追加情報を見つけることができました。

誰が私が間違っているのか教えてもらえますか?

4

1 に答える 1