Primefaces数据表过滤器只工作一次

Primefaces数据表过滤器只工作一次,primefaces,Primefaces,im使用Primefaces 3.5创建带有过滤器的数据表 <h:form id="table"> <div class="showRuleStyle"> <p:dataTable id="RuleTable" var="e" value="#{ruleListBean.rules}" filteredValue="#{ruleListBean.filteredRules}" styleClass="ruleTabl

im使用Primefaces 3.5创建带有过滤器的数据表

<h:form id="table">
     <div class="showRuleStyle">            
        <p:dataTable id="RuleTable" var="e" value="#{ruleListBean.rules}" filteredValue="#{ruleListBean.filteredRules}" styleClass="ruleTable"  paginator="true" paginatorPosition="bottom" rows="15" emptyMessage="Keine Einträge gefunden.">

            <p:column id="companyColumn" headerText="Name" filterBy="#{e.name}" filterOptions="#{ruleListBean.filterNameOptions}" >
                <h:outputText value="#{e.name}"></h:outputText>
            </p:column>

            ...

            <p:column>
                <f:facet name="header"></f:facet>
                <h:commandButton id="DeleteRuleButton" value="Löschen" styleClass="buttondefault" action="#{ruleListBean.removeRule(e)}" update=":table"></h:commandButton>
            </p:column>
        </p:dataTable>
    </div>
</h:form>

...
现在,我得到了预期的表,可以选择一个更新表的过滤器。但是现在,如果我尝试选择一个不同的过滤器或选择空过滤器,什么都不会发生。如果我点击按钮,它会再次工作,我想这是因为表单的更新

我试图补充

 <p:ajax event="filter" update=":table"> 

和其他事件,但它不会起作用

有什么建议吗

问候
Alex

ruleListBean的范围是什么?我已经尝试了你的代码,它按照预期工作(没有p:ajax)

我的ruleListBean在视图范围内

建议使用比请求更长的作用域,如viewscope来 保留filteredValue,以便过滤后的列表仍然可以访问 过滤。(PrimeFaces用户指南第135页)


注意:将h:commandButton更改为p:commandButton,以便您可以使用更新功能。

好的,谢谢您的回答。:)我现在遇到了问题,dataTable位于第二个(包装器)中,过滤器更新程序可以正确处理该包装器。它甚至没有倒过来。同样,将
allFoos()
转换为
allFoos
然后为
allFoos
使用getter/setter也不起作用。