Primefaces使用selectOneButton奇怪的行为进行过滤

时间:2014-09-11 16:10:18

标签: jsf primefaces jsf-2.2 selectonemenu

我有一个列性别的数据表。

我想根据性别过滤数据表中的记录。

这是我对该部分的代码。

奇怪的是,我的性别栏将继续显示女性,即使我点击全部和男性按钮。知道为什么吗?

  <p:column filterBy="#{staff.gender}" sortBy="#{staff.gender}" headerText="Gender" filterMatchMode="equals">
                            <f:facet name="filter">
                                <p:selectOneButton onchange="PF('staffTable').filter()">
                                    <f:converter converterId="javax.faces.Boolean" />
                                    <f:selectItem itemLabel="All" itemValue="" />
                                    <f:selectItem itemLabel="Male" itemValue="true" />
                                    <f:selectItem itemLabel="Female" itemValue="false" />
                                </p:selectOneButton>
                            </f:facet>
                          <h:outputText value="#{staff.gender ? 'Male': 'Female'}" />
                        </p:column>

2 个答案:

答案 0 :(得分:0)

将列filterMatchMode属性值更改为exact将解决问题:

filterMatchMode="exact"

答案 1 :(得分:0)

将filteredValue添加到表组件中,该组件在backingbean中保留过滤值的列​​表,如下所示:

JSONArray jsonArray = (JSONArray) jsonObject.get(key);

在豆当然是这样的:

<p:dataTable value="#{yourBean.listOfValues}" var="value" filteredValue="#{yourBean.listOfFilteredValues}">