[英]Primefaces p:dataTable filter not working with p:columns
我們的項目使用JSF 2.2 primeface 5.1。 我使用以下代碼在我的JSF頁面中顯示數據表,我根據動態列的類型為動態過濾器添加了<f:facet name="filter">
。 但是當我在每列的頭部鍵入條件或選擇下拉列表時,數據表不會過濾。
如果我刪除<f:facet name="filter">
部分。 雖然過濾器類型不會動態變化(它總是輸入文本),但過濾工作,數據表將根據輸入的條件進行過濾。任何想法都將非常感激。
<p:dataTable id="myTable" var="model" value="#{myBackingBean.dynaModels}" widgetVar="tableWidget" editable="true" styleClass="ui-dyna-table"
rows="15" paginator="true" resizableColumns="true" tableStyle="width:auto" emptyMessage="">
<p:columns value="#{myBackingBean.myProperties}" var="myProperty" columnIndexVar="colIndex" styleClass="ui-editable-column" width="50px" filterBy="#{model.dyanModel[myProperty.propertyKey].value}" sortBy="#{model.dyanModel[myProperty.propertyKey].value}">
<f:facet name="header" >
<h:outputText value="#{myProperty.descr}" />
</f:facet>
<f:facet name="filter" >
<p:selectOneMenu rendered="#{myProperty.componentType.value eq 'S1'}" style="width:100px" onchange="PF('tableWidget').filter()" >
<f:selectItem itemValue="" noSelectionOption="true"/>
<f:selectItems value="#{myProperty.lov}" />
</p:selectOneMenu>
<p:inputText rendered="#{myProperty.componentType.value eq 'TXT'}" style="width:80px" onchange="PF('tableWidget').filter()" />
<p:calendar rendered="#{myProperty.componentType.value eq 'DT'}" showOn="button" pattern="dd-MMM-yyyy" onchange="PF('tableWidget').filter()" >
</p:calendar>
</f:facet>
<h:outputText value="#{model.dyanModel[myProperty.propertyKey].value}" />
</p:columns>
經過一番搜索,我發現這是一個已知的素面bug。 動態p:列內的過濾器不起作用。 我嘗試通過以下方法改變我的jsf並且它有效。
<c:forEach ...>
<p:column>
</p:column>
</c:forEach>
instead of
<p:columns>
</p:columns>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.