为什么p:ajax无法更新素数5和JSF2中的h:outputText?

问题描述 投票:0回答:1

我有一个带过滤器的数据表

<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS9lZHZIei5wbmcifQ==” alt =“在此处输入图像描述”>

过滤器工作正常,但过滤器的结果不起作用。我在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并更新结果,但不起作用

Bean

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();
}

我该如何解决?

ajax jsf-2 primefaces datatable xhtml
1个回答
2
投票

您的侦听器方法的返回值将被忽略,但是您不需要它,因为outputText将直接从myWork获取其值。它应改为获取filteredMyWork列表的大小。

您可以尝试用ìnputText中的一个替换p:ajax p:datatable

<p:ajax event="filter" process="@this" update="sizeFilterMyWork" />
© www.soinside.com 2019 - 2024. All rights reserved.