【发布时间】:2014-07-07 20:32:02
【问题描述】:
我有一个 Primefaces(5.0) 数据表。我使用两个列过滤器:selectOneMenu(Filter1) 和 selectCheckboxMenu(Filter2)。
两个过滤器的数据都被很好地填充了。 selectOneMenu(Filter1) 可以过滤DataTable,但是selectCheckboxMenu(Filter2) 选择一个值后没有找到任何数据。
JSF
<p:dataTable value="#{employeeBean.employees}" var="employee" id="employeeDTable"
emptyMessage="No data" filteredValue="#{employeeBean.filteredEmployees}"
widgetVar="empWidgetVar" rowKey="#{employee.id}">
<!-- THIS WORKS -->
<p:column headerText="Filter1" filterBy="truck.id" filterMatchMode="exact">
<f:facet name="filter">
<p:selectOneMenu onchange="PF('empWidgetVar').filter()">
<f:selectItems value="#{dropdowns.trucksWithAllOption}"/>
</p:selectOneMenu>
</f:facet>
<h:outputText value="#{employee.truck.license}"/>
</p:column>
<!-- THIS DOESN'T WORK (Doesn't find any data) -->
<p:column headerText="Filter2" filterBy="truck.id" filterMatchMode="in">
<f:facet name="filter">
<p:selectCheckboxMenu onchange="PF('empWidgetVar').filter()" label="Vrachtwagen">
<f:selectItems value="#{dropdowns.trucksWithAllOption}"/>
</p:selectCheckboxMenu>
</f:facet>
<h:outputText value="#{employee.truck.license}"/>
</p:column>
</p:dataTable>
dropdowns.trucksWithAllOption
渲染滤镜1
渲染过滤器2
为什么 selectCheckboxMenu(Filter2) 找不到任何数据,而 selectOneMenu(Filter1) 可以很好地找到相同的数据?
【问题讨论】:
-
我也遇到同样的问题。selectCheckBox 值预计为数组。我认为它是因为调用了 selectCheckBox 值属性的
toString()。prime 团队应该尽快修复@cagatay-civici
标签: jsf primefaces datatable