我有一个带过滤器的数据表
过滤器工作正常,但过滤器的结果不起作用。我在p:inputText中调用ajax来尝试刷新结果但不起作用
<h:outputText value="Result"/><h:outputText id="sizeFilterMyWork" value="#{caseManagement.myWork.size()}" />
<h:outputText value="Filter" id="myCaseOutputTextSearch" />
<p:inputText id="globalFilter" onkeyup="PF('myCaseTable').filter()" style="width:150px" >
<p:ajax event="keyup" update="sizeFilterMyWork" listener="#{caseManagement.getSizefilteredMyWork}"></p:ajax>
</p:inputText>
在bean中我有myWork
的列表(带有get和set)和用于过滤器的列表(带有get和set),当页面加载时,结果调用列表的大小我的工作,然后,当我使用过滤器时,数据表正在缩小(所以它的工作),但结果的数量没有变化。 Ajax应调用方法getSizefilteredMyWork
并更新结果但不起作用
豆
private List<Case> myWork = new ArrayList<Case>(); // get and set
private List<Case> filteredMyWork; //get and set
public int getSizefilteredMyWork(final AjaxBehaviorEvent event)
{
return filteredMyWork.size();
}
我该如何解决?
答案 0 :(得分:2)
您的侦听器方法的返回值将被忽略,但您不需要它,因为outputText
将直接从myWork
获取其值。它应该改为filteredMyWork
列表的大小。
您可以尝试将ìnputText
p:ajax
替换为p:datatable
中的一个:
<p:ajax event="filter" process="@this" update="sizeFilterMyWork" />