Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 2 在完成筛选表结束时调用backingbean的方法_Jsf 2_Primefaces - Fatal编程技术网

Jsf 2 在完成筛选表结束时调用backingbean的方法

Jsf 2 在完成筛选表结束时调用backingbean的方法,jsf-2,primefaces,Jsf 2,Primefaces,在完成筛选表结束时调用backingbean的方法。使用Primefaces,datatable如下所示: <p:dataTable id="tabla_gral" rendered="#{consumoMaterial.verTabla}" var="item" paginator="true" rows="15" rowKey="#{item.no}" value="#{consumoMaterial.listadoConsumo}" filteredValue="#{consumoM

在完成筛选表结束时调用backingbean的方法。使用Primefaces,datatable如下所示:

<p:dataTable id="tabla_gral" rendered="#{consumoMaterial.verTabla}" var="item" paginator="true" rows="15" rowKey="#{item.no}" value="#{consumoMaterial.listadoConsumo}" filteredValue="#{consumoMaterial.listadoConsumoFiltered}">
  <p:ajax event="filter" listener="#{consumoMaterial.actualizarSaldos}" update=":form2:tabla_gral" />
  <f:facet name="header">
    <h:outputText value="Búsqueda de Consumo por: #{consumoMaterial.tipoBuscar}: '#{consumoMaterial.codigo}'" />
  </f:facet>
  <p:column exportable="#{consumoMaterial.no}" rendered="#{consumoMaterial.no}" id="cclave" sortBy="#{item.no}" filterBy="#{item.no}" filterMatchMode="contains">
    <f:facet name="header">
      <h:outputText value="Nro" />
    </f:facet>
    <h:outputText value="#{item.no}" />
  </p:column>
  <p:column exportable="#{consumoMaterial.centroCosto}" rendered="#{consumoMaterial.centroCosto}" id="cconcepto" sortBy="#{item.centroCosto}" filterBy="#{item.centroCosto}" filterMatchMode="contains">
    <f:facet name="header">
      <h:outputText value="Centro de Costo" />
    </f:facet>
    <h:outputText value="#{item.centroCosto}" />
  </p:column>
  <p:column exportable="#{consumoMaterial.codigoAlmacen}" rendered="#{consumoMaterial.codigoAlmacen}" id="ctipo" sortBy="#{item.codigoAlmacen}" filterBy="#{item.codigoAlmacen}" filterMatchMode="contains">
    <f:facet name="header">
      <h:outputText value="Almacén" />
    </f:facet>
    <h:outputText value="#{item.codigoAlmacen}" />
  </p:column>
</p:dataTable>


ajax event=“filter”
不起作用,因为它是在过滤时完成的,而不是在过滤结束时完成的。

您可以:在过滤事件中,您在oncomplete或onsuccess中调用JavaScript函数(这取决于您的目标),JavaScript函数将触发click事件到commandbutton,然后将您想要的操作代码放到该commandbutton:

<h:form id="form">  
    <script type="text/javascript">
                    function test(){
                        $(PrimeFaces.escapeClientId('form:btn')).click();
                    }
                </script>
                <p:commandButton  style="display:none !important" id="btn" oncomplete="alert('ab');" value="SB"/>
                <p:dataTable   var="carr" value="#{tabview.l1}" id="carList" >  
                    <p:ajax event="filter" oncomplete="test();"/>
                    <p:column filterMatchMode="contains" filterBy="#{carr.model}" headerText="Model" style="width:30%">  
                        <h:outputText value="#{carr.model}" />  
                    </p:column>  
                    <p:column headerText="MANUFAC" style="width:20%">  
                        <h:outputText value="#{carr.manufacturer}" />  
                    </p:column>  
                </p:dataTable>
 </h:form>  

功能测试(){
$(PrimeFaces.escapeClientId('form:btn'))。单击();
}

@MikO,谢谢你的编辑。